Javascript IE 10&;11 CORS状态0

Javascript IE 10&;11 CORS状态0,javascript,ajax,cors,Javascript,Ajax,Cors,我有一个IE错误,我似乎不明白。我支持IE10和IE11只是为了让我觉得我可以不受以下代码的影响 我有一个AJAX请求: $.ajax({ type: {method}, url: {url}, cache: false, crossDomain: true, data: {data to send}, success: function (data, textStatus, xhr) { ///success code },

我有一个IE错误,我似乎不明白。我支持IE10和IE11只是为了让我觉得我可以不受以下代码的影响

我有一个AJAX请求:

$.ajax({
    type: {method},
    url: {url},
    cache: false,
    crossDomain: true,
    data: {data to send},
    success: function (data, textStatus, xhr) {
       ///success code
    },
   error: function (xhr, textStatus, errorThrown) {
       //error code
   }
});
这段代码在Firefox和Chrome中非常有效。它在IE 10,11中不起作用。我的印象是CORS是在IE 10,11中修复的,不是吗

为什么在IE 10,11中会出现跟随错误

{"readyState":0,"status":0,"statusText":"Error: Access is denied.\r\n"}

所以我需要启用“跨域访问数据源”

步骤:

  • 选择Internet选项
  • 选择安全选项卡
  • 选择自定义级别
  • 向下滚动至“杂项”
  • 跨域查找访问数据源
  • 更改该值以启用

  • 不相关,但
    crossDomain:true如果您正在进行跨域请求,则不需要。(奇怪吧?)如果你想知道为什么,请参阅跨域选项的文档。你确定你实际上是在IE10或11标准模式下运行的吗?通常情况下,在开发环境中进行测试时,IE会默认为兼容模式,这会使您回到IE8或IE7。我收到相同的错误,CORS设置在服务器上完成,但请求从未出现在IE的“网络”选项卡中。始终为xhr.status=0。有什么想法吗?谢谢大家。不过运气不好。所以对我来说,服务器设置正确,一切都在chrome和firefox中运行。此外,如果我将用户代理字符串更改为“Google Chrome”,它将在IE中工作。如果我将其设置为IE 10或11,则会出现我前面提到的错误。另外,我确信我没有使用兼容模式。我刚才仔细检查了一下。您需要显示客户端和服务器之间HTTP通信量的记录,以便在这方面获得进一步的帮助。问题在于您的客户端代码或服务器代码。您将不得不要求所有客户也这样做,这听起来不合理。我知道,但还有什么选择?您需要为初学者显示客户端和服务器之间HTTP通信的副本。仅此而已。如果未启用上述设置,则没有流量。它在发送任何东西之前就失败了。正如我前面提到的jquery
    xhr.open(s.type、s.url、s.async)
    在拒绝访问的情况下立即抛出错误。IE中的整个安全区业务是它一直以来都是如此糟糕的浏览器的众多原因之一。这一切都是非常混乱和不必要的。另外,IE在其他方面也违反了同一原产地政策RFC(它没有考虑到端口),并且之前已经破坏了CORS支持(查看XDomainRequest以获取证据)。看起来您的问题是试图从不太安全的区域向更安全的区域发出XHR请求。