Chrome 不发送带有外来字符的 headers
Chrome not sending headers with foreign characters
我有一个问题 Chrome 不发送包含“特殊字符”的 header,例如瑞典语 ÅÄÖ。如果我去掉这些特殊字符,一切正常。这是一个简单的例子:
$.ajax({
type: 'POST',
url: '/echo/html/',
headers: {
"SomeHeader":"ÅÄÖ" // This header will be removed.
"SomeOtherHeader":"ABC" // This header will be sent.
},
data: {
foo: 'bar',
delay: 1
}
})
.fail(function(data){
alert("Error!");
})
.done(function(data) {
alert("Success!");
});
查看 Chrome 中的 network-tab 时,很明显缺少一个 header。我尝试将 Content-Type
设置为:application/json; charset=UTF-8
但没有任何运气。
错误发生在 Chrome (85.0.4183.121 x64)。 Edge 发送 header,但内容为空(!?)。 IE11 和 Firefox 发送 header 及其所有内容。
这是一个可重现的 fiddle:
http://jsfiddle.net/qr8j0cgo/
如何让 Chrome(以及所有其他浏览器)发送包含我的特殊字符的 header?
作为一个额外的要求,我的现实世界问题涉及 content-type 与 multipart/form-data
和边界。
我知道我几乎可以使用任何编码(甚至是 base64)对字符进行编码,因此可以解决这个问题。但我无法更改服务器上的任何内容,因此请求需要相同(或至少解释与以前相同)。
我运行在GoogleChrome88.0.4324.96(官方版)(64位)。
我敢打赌公司网络过滤器。
问题出在 Chrome 扩展程序 ModHeader 上。禁用它时,一切都按预期工作。
我有一个问题 Chrome 不发送包含“特殊字符”的 header,例如瑞典语 ÅÄÖ。如果我去掉这些特殊字符,一切正常。这是一个简单的例子:
$.ajax({
type: 'POST',
url: '/echo/html/',
headers: {
"SomeHeader":"ÅÄÖ" // This header will be removed.
"SomeOtherHeader":"ABC" // This header will be sent.
},
data: {
foo: 'bar',
delay: 1
}
})
.fail(function(data){
alert("Error!");
})
.done(function(data) {
alert("Success!");
});
查看 Chrome 中的 network-tab 时,很明显缺少一个 header。我尝试将 Content-Type
设置为:application/json; charset=UTF-8
但没有任何运气。
错误发生在 Chrome (85.0.4183.121 x64)。 Edge 发送 header,但内容为空(!?)。 IE11 和 Firefox 发送 header 及其所有内容。
这是一个可重现的 fiddle: http://jsfiddle.net/qr8j0cgo/
如何让 Chrome(以及所有其他浏览器)发送包含我的特殊字符的 header?
作为一个额外的要求,我的现实世界问题涉及 content-type 与 multipart/form-data
和边界。
我知道我几乎可以使用任何编码(甚至是 base64)对字符进行编码,因此可以解决这个问题。但我无法更改服务器上的任何内容,因此请求需要相同(或至少解释与以前相同)。
我运行在GoogleChrome88.0.4324.96(官方版)(64位)。
我敢打赌公司网络过滤器。
问题出在 Chrome 扩展程序 ModHeader 上。禁用它时,一切都按预期工作。