从上个版本的chrome浏览器的JS控制台来看:
x = new XMLHttpRequest();
x.open('POST', '?a=2');
x.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded; charset="ISO-8859-1"');
x.send({b:2});
请求以错误的编码发送,在网络检查器中,我看到:
Content-Type:application/x-www-form-urlencoded; charset="UTF-8"
当我提供时,另一个非常奇怪的行为charset=ISO-8859-1
代替charset="ISO-8859-1"
,我得到:
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
因为中间发生了一些变化。
编辑2013/12/11
好吧,对我来说真正有问题的一点是,如果您不发送(数据),编码更改将按预期工作。以我之前的例子(注意最后一行的更改):
x = new XMLHttpRequest();
x.open('POST', '?a=2');
x.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded; charset="ISO-8859-1"');
x.send();
然后网络正确输出:
Content-Type:application/x-www-form-urlencoded; charset="ISO-8859-1"
奇怪的...
The W3C XMLHttpRequest 规范 http://www.w3.org/TR/XMLHttpRequest/指示字符集始终为 UTF-8,指定另一个字符集不会强制浏览器更改编码。
请注意,文档 http://api.jquery.com/jQuery.ajax/jQuery 的 $.ajax 方法在设置 Content-Type 时说了完全相同的事情
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)