问题
接口请求的headers参数里有不符合 ISO-8859-1 标准的字符,所以导致设置接口headers
参数的setRequestHeader
方法失效,然后报错。
Failed to execute ‘
setRequestHeader
’ on ‘XMLHttpRequest
’: Stringcontains non ISO-8859-1 code point
解决方式
常见的接口请求头不符合ISO-8859-1标准的有 中文,不传中文最省心了。
遇到这种情况,一般两种解决方式,要么解决参数问题,要么给参数编码。
方式1:解决参数问题
需要加到headers的参数里的数据提前正则校验处理,如果不符合ISO-8859-1就不允许设置。文章来源:https://www.toymoban.com/news/detail-534840.html
var reg = /^[A-Za-z0-9.,;'"@%#\\\/\^\?\*\^\$\+\?\{\}\(\)\[\]\>\<\=\+\-\:\!]+$/;
if(reg.test(headersValue)){
// can invoke setRequestHeader
}
方式2:对于参数进行编码
通过 encodeURIComponent 对参数进行编码,同时必须后台接收时解码,前台回显则使用 decodeURIComponent 进行解码.文章来源地址https://www.toymoban.com/news/detail-534840.html
var headersValue = encodeURIComponent(originValue);
// can invoke setRequestHeader
到了这里,关于Failed to execute ‘setRequestHeader‘ on ‘XMLHttpRequest‘: String contains non ISO-8859-1 code point的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!