XMLHttpRequest:网络错误0x80070005,Microsoft Edge(但不是IE)上的访问被拒绝

时间:2015-06-17 16:12:36

标签: javascript ajax internet-explorer cors microsoft-edge

我有一个非常简单的ajax请求(见下文)。服务器正在使用CORS,在IE 10 +,Chrome,Firefox和Opera 中正常工作。但是,在 Microsoft Edge 上,它失败并带有

  

XMLHttpRequest:网络错误0x80070005,访问被拒绝。

我已对帖子herehereherehere进行了调查,但无法找到有效的答案。那些人在使用IE时遇到了问题,但添加了contentType(此get不需要)和crossDomain使其工作正常。

CanIUse似乎表明CORS在Edge中可用。 IE9关闭时请求也失败了,但是CanIUse只声明对CORS的部分支持,所以这是可以理解的。

我有什么想法可以解决这个问题吗?

代码:

$.ajax({
      crossDomain: true,
      url: "http://localhost:2023/api/DoAction/test",
      success: function (a) {
        var res = JSON.parse(a);
        alert(res.content);
      },
      error: function (a, e, r) {
        alert(a.responseText);
      }
    });

更新

要提供更多信息以防提供任何线索 - ajax请求来自Azure并发布到使用OWIN自托管创建的localhost网站。这是不寻常的,但软件(只能在本地使用)需要从云服务获取数据。如上所述,它适用于所有其他浏览器,Edge是唯一的问题。

3 个答案:

答案 0 :(得分:10)

使用Microsoft Edge的开发人员不应再存在此问题。如果您遇到localhost测试问题,请导航到 about:flags ,并确保选中 Allow localhost loopback

Microsoft Edge不支持当前支持(开箱即用)localhost测试。但是,您可以按照此处提供的指导启用它:http://dev.modern.ie/platform/faq/how-can-i-debug-localhost/

我们正在努力在将来的版本中解决此问题。

答案 1 :(得分:0)

对于Build 10158,命令稍有改动,Spartan完全重新命名为Microsoft Edge,因此要在Microsoft Edge中启用它,请从管理员命令提示符运行以下命令:

CheckNetIsolation.exe LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

答案 2 :(得分:0)

在你的ajax调用之前使用:$ .support.cors = true;