我正在尝试将Chrome扩展程序移植到Edge。 Chrome扩展程序运行正常,所有HTTP请求都按预期工作。当这些相同的请求在端口中触发时,我收到此错误:
XMLHttpRequest:网络错误0x2efd,由于错误00002efd无法完成操作。
这个问题似乎出现在很多微软的东西上,including Windows Phone。也许这个扩展的问题有一个类似的答案,但我允许我的清单中的所有网址......
这是请求:
$http.get(url)
.then(function () {
})
.catch(function () {
var args = arguments;
});
我也尝试过jQuery方式:
$.ajax({
url: url,
success: function () {
},
error: function () {
var args = arguments;
}
});
我无法分享确切的网址,因为它是我们业务架构的一部分,但Chrome扩展程序使用它很好。如果我直接在浏览器(Edge或Chrome)中打开URL,它会显示结果......我很茫然。我知道错误意味着请求无法连接,但为什么?我该如何解决?
答案 0 :(得分:2)
似乎是known bug,截至2016-10-07尚未完全分类。
在另一个bug report微软神秘地说“这是设计扩展不支持环回”,并将其关闭。这肯定与Chrome模型不兼容。
症状似乎是作为攻击性XSS预防策略的一部分,被Windows网络堆栈视为本地Intranet一部分的站点的连接被拒绝。
在MS解决此问题之前,您无法在扩展方面做任何事情。如果有的话,扩展代码需要具有足够的特权来执行此操作,即使这会破坏其分区模型。
虽然你可以做一些环境改变。我将尝试“本地Intranet”区域的Internet选项,例如设置保护模式,禁用Internet区域,或者更可能以某种方式确保站点不被视为Intranet。域名而不是IP地址也可能有助于“欺骗”Edge,它不是内联网。