通过摆弄,如果是跨源的,IE11 似乎不会发出 ajax 请求。如果资源 API 未发送必要的标头,FF 和 Chrome 至少会发出请求并抛出错误。在我的例子中,资源 API (Web API 2.0) 是添加所需的标头 http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api#enable-cors如果 IE 发出请求,但实际上没有发出请求,这将很有帮助。
客户端的 JavaScript:
jQuery.support.cors = true;
$.fn.somePlugin = function () {
$.ajax({
url: apiUrl + '/articles/list/',
type: 'GET',
crossDomain: true
}).done(
function (data, textStatus, xhr) {
console.log('hello world!');
});
return this;
}
上面的ajax请求在Chrome和FF中完美运行,但在IE11中不行。
我试过了:
- 添加对的引用XDomainRequest.js http://cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.2/jquery.xdomainrequest.min.js没有任何影响。
- 在 IE 安全选项中启用跨源请求 - 尽管在每台客户端计算机上执行此操作似乎很奇怪。无论如何,这没有什么区别。
我也遇到了同样的问题。我无法使用 XMLHttpRequest()、$.ajax() 或 $.ajax 快捷方式检索任何 CORS 数据。问题原来是本地主机(IIS WinPro7)。每个 AJAX CORS 请求都经过预检,生成一个
Origin http://localhost http://localhost在 Access-Control-Allow-Origin 标头中找不到
错误,然后是
XMLHttpRequest:网络错误 0x80070005,访问被拒绝
当我将 HTML 页面移动到网络服务器时,它工作得很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)