边缘扩展HTTP请求中的错误0x2efd

时间:2016-10-06 21:06:39

标签: javascript jquery angularjs google-chrome-extension microsoft-edge-extension

我正在尝试将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,它会显示结果......我很茫然。我知道错误意味着请求无法连接,但为什么?我该如何解决?

1 个答案:

答案 0 :(得分:2)

似乎是known bug,截至2016-10-07尚未完全分类。

在另一个bug report微软神秘地说“这是设计扩展不支持环回”,并将其关闭。这肯定与Chrome模型不兼容。

症状似乎是作为攻击性XSS预防策略的一部分,被Windows网络堆栈视为本地Intranet一部分的站点的连接被拒绝。

在MS解决此问题之前,您无法在扩展方面做任何事情。如果有的话,扩展代码需要具有足够的特权来执行此操作,即使这会破坏其分区模型。

虽然你可以做一些环境改变。我将尝试“本地Intranet”区域的Internet选项,例如设置保护模式,禁用Internet区域,或者更可能以某种方式确保站点被视为Intranet。域名而不是IP地址也可能有助于“欺骗”Edge,它不是内联网。