MS Edge 处理 401 错误从而绕过我的错误处理程序
MS Edge handles 401 errors thus bypassing my error handler
我有代码可以在 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 中对我的 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 站点的调用,现在一切正常。