javascript - MS Edge 处理 401 错误,从而绕过我的错误处理程序

标签 javascript ajax asp.net-membership microsoft-edge http-status-codes

我有代码可以在 JavaScript 中对我的 Web 服务进行 ajax 调用,如下所示:

    $.ajax(
        {
            url: url,
            data: json,
            type: "POST",
            processData: false,
            contentType: "application/json",
            timeout: 10000,
            dataType: "text",
            global: false,
            success: function (result, jqXHR)
            {
                sccParams = {
                    result: result,
                    jqXHR: jqXHR,
                }
                successResult(sccParams)
            },
            error: function (jqXHR, textStatus, errorThrown)
            {
                errParams = {
                    jqXHR: jqXHR,
                    textStatus: textStatus,
                    errorThrown: errorThrown,
                }
                errorHandler(errParams);
            }
        });

除非 MS Edge 中出现 401 错误,否则此操作正常。在这种情况下,我可以看到 Ajax 调用被触发,但看起来好像 MS Edge 介入并处理错误,并且我的成功或错误函数都没有被调用。我的 errorHandler 有处理 401 错误的代码,但这永远不会运行,而是在控制台日志中看到以下内容:

HTTP401: DENIED - The requested resource requires user authentication.
(XHR)POST - https://www.mywebsite.co.uk/WebService.svc/MyWebServiceRoutine

我的网络服务托管在 azure 中并使用 aspnet_Membership。

如何让 MS Edge 退出并让我处理自己的错误?其他浏览器工作正常。

最佳答案

造成这种情况的原因似乎是,为了检查互联网连接,我的代码调用了 http 站点。由于我的网站是 https 网站,因此 MS Edge 认为此行为可疑。因此,每当我随后尝试访问我的 Web 服务时,MS Edge 就会介入并拒绝我的网站访问。

我已将对 http 站点的调用替换为对 https 站点的调用,现在一切正常。

关于javascript - MS Edge 处理 401 错误,从而绕过我的错误处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44926389/

相关文章:

javascript - 使用 AngularJS 访问和显示 JSON 对象

javascript - 基于多个嵌套值对嵌套数组进行排序的最佳方法

php - 如何使用 jquery 建立链接而不重新加载所有页面

ajax - 在 localStorage 中存储图像

c# - 如何限制多次登录同一用户 C# 和 Active Directory 成员身份

asp.net - 如何在没有登录控制的情况下使用表单例份验证?

javascript - 了解 JavaScript 中的递归异步调用

java - 如何通过 AJAX 调用 AXIS Web 服务?

asp.net - 如何分配Profile值?

javascript - 如何在 Aurelia 应用程序中禁用浏览器同步?