Ajax 调用 Web API 在 Chrome 中有效,但在 Edge 中无效

Ajax Call to Web API works in Chrome but not in Edge

我创建了一个 Edge 扩展程序,目前可以对网络进行 Ajax 调用 API 我也开发了它来请求数据。目前,经过几个小时的测试,我知道 Ajax 调用工作正常并且 returns 相关数据。

我的问题是 Ajax 当我尝试从我的 Edge 分机中调用时,调用会失败。它不提供任何推理或错误,仅提供我添加到 Ajax 调用中的错误消息(错误:.... 见下文)。在 chrome 中测试了完全相同的扩展和 Ajax 对我的网络 API 的调用后,扩展中的 Ajax 调用正常工作,并且 returns 从中获取的数据然后我可以使用。

$(document).ready(function () {
    $select = $('#brandDropdownList');
    $.ajax({
        type: "GET",
        url: 'http://localhost:44358/api/brands',
        dataType: 'JSON',
        success:function(data) {
            $select.html('');
            $.each(data, function(key, val) {
                $select.append('<option id="' + val.brand_id + '">' + val.brand_name + '</option>');
            })
        },
        error: function(){
            $select.html('<option id="-2">Please try again...</option>');
        }
    });  

这是为什么?我没有任何错误或问题,它在 Chrome 中运行良好,但在 Edge 中却不行,不幸的是我必须将 Edge 用于我正在进行的项目。 我在开发工具的控制台中看到的唯一错误是警告:

"serviceWorker.getRegistrations is rejected due to unsecure context or host restriction in ms-browser-extension"

这可能是因为出于安全原因,Microsoft Edge 默认具有网络隔离功能。您可以在 cmd 提示符下以管理员身份通过 运行 以下命令启用环回并调试本地主机服务器,然后重新启动 Microsoft Edge:

CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe

参考:

(1) Failed to fetch error with MS Edge Extension

(2) Why does Microsoft Edge open some local websites...

(3) How to debug localhost on Microsoft Edge