我正在对我的ajax请求使用jQuery 3.4.1。对于大多数请求,我想通过全局处理程序(由ajaxError
设置)来处理错误。但是对于某些特殊的ajax请求,我想在本地处理错误。
注意:此问题不是Disabling some jQuery global Ajax event handlers for a request的重复,因为我将jQuery 3.x与TypeScript一起使用,其中settings.suppressErrors
不存在:
我的全局处理程序如下:
$(document).ajaxError(function (event, jqXHR, settings, errorThrown) {
if(errorThrown === "timeout") {
alert("Timeout occured");
}
};
对于以下ajax请求,我想将处理转发给 有效的全局处理程序:
$.ajax({
[...],
error: function(jqXHR, textStatus, errorThrown){
// handle timeout by global handler
}
});
对于另一个ajax请求,我想处理 本地代码并且不想将错误转发到全局处理程序:
$.ajax({
[...],
error: function(jqXHR, textStatus, errorThrown){
if(errorThrown === "timeout") {
// handle error an do not fire the global ajaxError
} else {
// handle error by global ajaxError
}
}
});
问题::将调用全局处理程序,并显示警报窗口。我不要那个。
注意:我不能使用 global:false ,因为在某些情况下,全局错误处理程序应该可以工作。
问题:当我使用自定义本地处理程序时,如何抑制全局错误处理程序?