通过摆弄,如果是跨源的,IE11 似乎不会发出 ajax 请求。如果资源 API 未发送必要的 header ,FF 和 Chrome 至少会发出请求并抛出错误。在我的例子中,资源 API (Web API 2.0) 是 adding required headers如果 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 的引用没有任何影响。
- 在 IE 安全选项中启用跨源请求 - 尽管在每台客户端计算机上执行此操作似乎很奇怪。无论如何,这没有什么区别。
最佳答案
我也遇到了同样的问题。我无法使用 XMLHttpRequest()、$.ajax() 或 $.ajax 快捷方式检索任何 CORS 数据。问题原来是本地主机(IIS WinPro7)。每个 AJAX CORS 请求都经过预检,生成一个
Origin http://localhost not found in Access-Control-Allow-Origin header
错误,后跟
XMLHttpRequest: Network Error 0x80070005, Access is denied
当我将 HTML 页面移动到网络服务器时,它工作正常。
关于javascript - IE11未发起CORS请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26682581/