Failed to execute ‘setRequestHeader‘ on ‘XMLHttpRequest‘: Value is not a valid ByteString.

2 篇文章 0 订阅

报错原因:Ajax请求头部信息有中文,注意是头部信息header不是内容

解决方法:可以跟后端协调商量,更改为非中文信息,或者使用编码函数encodeURI()对信息进行编码等

一次事故:这个问题排查了很久。在vue项目中,发起一次上传数据的请求后,第二次再重新上传,发现报了一个获取不到某个字段的错误,很纳闷,同样的操作,第一次成功,为什么第二次就失败了呢?后端说它这边没有报错信息,把问题甩给了前端。定位到报错的那一行代码,发现是发起请求后进入了一个error函数,随即把这个错误打印出来。即标题所示的错误。知道是请求头出现中文乱码后,又开始懵圈,我两次请求也没有改动请求头的数据啊,为什么第二次就挂了?后来查看了浏览器的请求头部信息,发现问题了。原来是在第一次请求之后,后端返回数据把token字段改成了中文内容。。。而前端每次都会拿到更新后的token,造成第二次再次发起请求的时候,请求头的token字段以中文形式传过去了!!!最后让后端不要动token字段,将标识放到其他字段就好了。。。问他为什么要改token,他说其他字段好像关联的东西蛮多的,就改了token,而前端对token是有依赖的。当然,咱们都不是从头开始开发此项目,所以犯些错误也是不可避免,但一定不能失去找bug的耐心。手动裂开.jpg

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值