我有一个非常简单的ajax请求(见下文)。服务器使用的是CORS,在IE 10+、Chrome、火狐和Opera上运行良好。然而,在Microsoft Edge上,它失败了,因为
XMLHttpRequest:网络错误0x80070005,访问被拒绝。
我研究了here,here,here和here这几个帖子,但是找不到一个有效的答案。这些人对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自托管创建的本地主机网站。这是不常见的,但对于软件(只能在本地使用)从云服务获取数据是必需的。如上所述,它适用于所有其他浏览器,Edge是唯一的问题。
发布于 2015-06-18 16:38:04
对于使用Microsoft Edge的开发人员来说,这个问题应该不再存在。如果您遇到有关本地主机测试的问题,请导航到about:flags,并确保选中Allow localhost loopback。
Microsoft Edge目前不支持(开箱即用)本地主机测试。但是,您可以按照此处提供的指导启用它:http://dev.modern.ie/platform/faq/how-can-i-debug-localhost/。
我们正在努力在未来的版本中解决这个问题。
发布于 2015-06-30 18:05:58
对于Build 10158,该命令稍有更改,将Spartan完全重新命名为Microsoft Edge,因此要在Microsoft Edge中启用该命令,请从管理员命令提示符运行以下命令:
CheckNetIsolation.exe LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe
发布于 2015-08-21 20:32:51
就在ajax调用之前,使用这个:$.support.cors = true;
https://stackoverflow.com/questions/30896958
复制相似问题