jQuery POST不在IE10上发送Content-Type

我在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,因此是xhrFieldscrossDomain设置的原因,但由于IE8和IE9以及XDomainRequest的问题,目前正在同一个域上托管所有内容。

似乎我们仍然包含xdr.js脚本以在IE上启用CORS,这导致了这个问题。