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

Error 0x2efd in Edge Extension HTTP Request

我正在尝试将 Chrome 扩展移植到 Edge。 Chrome 扩展工作正常,所有 HTTP 请求都按预期工作。当这些相同的请求在端口中触发时,我收到此错误:

XMLHttpRequest: Network Error 0x2efd, Could not complete the operation due to error 00002efd.

这个问题似乎出现在很多微软的东西上,including Windows Phone。也许对于这个扩展我的问题有类似的答案,但我允许我的清单中的所有 URLs...

这是请求:

$http.get(url)
    .then(function () {

    })
    .catch(function () {
        var args = arguments;
    });

我也试过 jQuery 方式:

$.ajax({
    url: url,
    success: function () {

    },
    error: function () {
        var args = arguments;
    }
});

我无法分享确切的 URL,因为它是我们业务架构的一部分,但 Chrome 扩展使用它很好。如果我直接在浏览器(Edge 或 Chrome)中打开 URL,它显示的结果很好......我不知所措。我知道错误意味着请求无法连接,但为什么呢?我该如何解决?

似乎 known bug 截至 2016 年 10 月 7 日尚未完全分类。

在另一个 bug report 中,Microsoft 神秘地说 "This is by design as extensions don’t support loopback" 并将其关闭。那肯定与 Chrome 模型不兼容。

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

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

虽然您可以对环境进行一些更改。我会尝试 "Local intranet" 区域的 Internet 选项,例如设置保护模式,为 Internet 区域禁用它,或者更有可能以某种方式确保站点 被视为 Intranet .域名而不是 IP 地址也可能有助于 "fooling" 确定它不是 Intranet。