【问题标题】:Ajax Call to Web API works in Chrome but not in EdgeAjax 对 Web API 的调用在 Chrome 中有效,但在 Edge 中无效
【发布时间】:2020-01-09 19:27:28
【问题描述】:

我创建了一个 Edge 扩展程序,该扩展程序当前对我也开发的 Web API 进行 Ajax 调用以请求数据。目前经过数小时的测试,我知道 Ajax 调用可以正常工作并返回相关数据。

我的问题是,当我尝试从 Edge 扩展程序调用 Ajax 调用时,它会失败。它没有提供任何推理或错误,只是我添加到 Ajax 调用中的错误消息(错误:...。见下文)。在 chrome 中测试了完全相同的扩展和对我的 Web API 的 Ajax 调用后,来自扩展内的 Ajax 调用可以正常工作并返回我可以使用的数据。

$(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。 我可以在开发工具的控制台中看到的唯一错误是有以下警告:

“由于 ms-browser-extension 中不安全的上下文或主机限制,serviceWorker.getRegistrations 被拒绝”

【问题讨论】:

  • 嗨,欢迎来到 stackoverflow。您能否提供您用于执行 AJAX 的代码?此外,即使错误可能不会说明太多,如果您在此处粘贴其内容的副本,我们将不胜感激。有疑问请参考How to Ask部分
  • 那我有办法解决这个问题吗?

标签: javascript jquery ajax microsoft-edge microsoft-edge-extension


【解决方案1】:

这可能是因为 Microsoft Edge 出于安全原因默认具有网络隔离。您可以通过在 cmd 提示符下以管理员身份运行以下命令来启用环回并调试 localhost 服务器,然后重新启动 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

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 2023-04-05
    • 2016-02-19
    • 1970-01-01
    • 2023-03-12
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多