2

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

XMLHttpRequest:网络错误 0x2efd,由于错误 00002efd 无法完成操作。

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

这是请求:

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

4

1 回答 1

2

似乎是截至 2016 年 10 月 7 日尚未完全分类的已知错误。

在另一份错误报告中,微软神秘地说“这是设计使然,因为扩展不支持环回”并因此关闭了它。这肯定与 Chrome 模型不兼容。

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

在 MS 解决此问题之前,您在扩展方面绝对无能为力。如果有的话,扩展代码需要足够的特权才能做到这一点,即使这会破坏它们的划分模型。

不过,您可以进行一些环境更改。我会尝试“本地 Intranet”区域的 Internet 选项,例如设置保护模式,禁用 Internet 区域,或者更可能以某种方式确保该站点被视为 Intranet。域名而不是 IP 地址也可能有助于“愚弄” Edge,使其不是 Intranet。

于 2016-10-07T06:58:28.647 回答