[英]jQuery POST not sending Content-Type on IE10
我在Windows 7 64位上使用jQuery 1.9.1和Internet Explorer版本10.0.9200.16686,更新版本10.0.9(KB2870699)。
使用$ .ajax进行POST时,不会发送Content-Type标头。 它可以在Chrome和其他浏览器上正常工作,并且我相信以前在IE10上可以正常工作,因此我怀疑对IE10的某些更新会引起问题。
我还可以手动创建XMLHttpRequest并发送请求,因此我假设它一定是jQuery中的错误,这才是真正的问题吗? 我尝试升级到1.10.2,但遇到了同样的问题。
我使用$.ajaxSetup
设置了contentType:
$.ajaxSetup({
contentType: 'application/json; charset=utf-8',
context: document.body,
dataType: 'json',
accepts: 'application/json',
processdata: true,
cache: false,
crossDomain: true,
xhrFields: { withCredentials: true }
});
我也尝试过将其显式设置为$.ajax
选项的一部分。
var options = {
url: basePath + 'login',
type: 'POST',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify({
UserName: username,
Password: password,
RememberMe: rememberMe || false
})
};
return $.ajax(options).then(...);
任何想法如何解决它将不胜感激。
注意:我们最初使用的是CORS,因此需要使用xhrFields
和crossDomain
设置,但是由于IE8和IE9和XDomainRequest
的问题,目前正在将所有内容托管在同一域中。
看来我们仍然包含xdr.js脚本来在IE上启用CORS,这导致了此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.