1

我在 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,但遇到了同样的问题。

我有 contentType 设置使用$.ajaxSetup

$.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.

4

1 回答 1

1

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

于 2013-10-08T10:40:52.587 回答