gpt4 book ai didi

Jquery Ajax 错误处理忽略中止

转载 作者:IT王子 更新时间:2023-10-29 03:25:53 26 4
gpt4 key购买 nike

我想要一个用于ajax调用的全局错误处理方法,这就是我现在拥有的:

$.ajaxSetup({
error: function (XMLHttpRequest, textStatus, errorThrown) {
displayError();
}
});

我需要忽略aborted 的错误。 errorThrown 为 null,textStatuserror。如何检查 aborted

最佳答案

我今天不得不处理相同的用例。我正在处理的应用程序有这些长时间运行的 ajax 调用,这些调用可能会被 1) 用户导航离开或 2) 某种临时连接/服务器故障中断。我希望错误处理程序仅在连接/服务器故障时运行,而不是在用户离开时运行。

我首先尝试了 Alastair Pitts 的答案,但它没有用,因为中止请求和连接失败都将状态代码和 readyState 设置为 0。接下来,我尝试了 sieppl 的答案;也没有用,因为在这两种情况下,都没有给出响应,因此没有 header 。

唯一对我有用的解决方案是为 window.onbeforeunload 设置一个监听器,它设置一个全局变量以指示页面已卸载。然后错误处理程序可以检查并仅在页面尚未卸载时才调用错误处理程序。

var globalVars = {unloaded:false};
$(window).bind('beforeunload', function(){
globalVars.unloaded = true;
});
...
$.ajax({
error: function(jqXHR,status,error){
if (globalVars.unloaded)
return;
}
});

关于Jquery Ajax 错误处理忽略中止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4807572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com