在带有TypeScript的jQuery ajax中使用本地错误处理程序时,如何抑制全局错误处理程序?

时间:2019-07-03 13:38:47

标签: javascript jquery ajax error-handling

我正在对我的ajax请求使用jQuery 3.4.1。对于大多数请求,我想通过全局处理程序(由ajaxError设置)来处理错误。但是对于某些特殊的ajax请求,我想在本地处理错误。

注意:此问题不是Disabling some jQuery global Ajax event handlers for a request的重复,因为我将jQuery 3.x与TypeScript一起使用,其中settings.suppressErrors不存在:

SuppressErrors

我的全局处理程序如下:

$(document).ajaxError(function (event, jqXHR, settings, errorThrown) {
    if(errorThrown === "timeout") {
        alert("Timeout occured");
    }
};
  1. 对于以下ajax请求,我想将处理转发给 有效的全局处理程序:

    $.ajax({
        [...],
        error: function(jqXHR, textStatus, errorThrown){
            // handle timeout by global handler
        }
    });
    
  2. 对于另一个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 ,因为在某些情况下,全局错误处理程序应该可以工作。

问题:当我使用自定义本地处理程序时,如何抑制全局错误处理程序?

0 个答案:

没有答案