如何将$ .ajax实例中的错误冒泡到$ .ajaxSetup?

时间:2016-10-07 11:40:33

标签: javascript jquery ajax exception-handling jquery-2.0

我在ajax设置中定义了一个错误回调,它将在每个ajax实例中执行:

$.ajaxSetup({

    cache: false,
    error: function (data, textStatus, pStatusDescription) {

        if (pStatusDescription === "Unauthorized")
        {
            // show dialog
            alert("Your Login has expired. Please re-login.");
            return;
        }
    }
});

此外,我有一个简单的ajax请求,它有一个自己的错误处理定义。该定义将覆盖$.ajaxSetup

中的定义
$.ajax({
    url: "http://hostname",
    success: function(xhr) { ... },
    error: function(data, textStatus, pStatusDescription) { 

        if(pStatusDescription === "ObjectNotFound")
        {
            // remove Object
            return;
        }

        // call 'error' callback in $.ajaxSetup now.
    }
});

如何将$.ajax实例中的错误冒充到$.ajaxSetup

1 个答案:

答案 0 :(得分:0)

我认为问题是:你正在使用ajaxSetup错误的方法。查看ajaxSetup docs中的注释:

  

注意:全局回调函数应设置为各自的   全局Ajax事件处理程序方法-ajaxStart(),. ajaxStop(),   .ajaxComplete(),. ajaxError(),. ajaxSuccess(),. ajaxSend() - 而不是   在$ .ajaxSetup()的选项对象中。

因此,如果你ajaxError而不是ajaxSetup,你可以在ajaxError处理程序中捕获全局处理程序的错误,并在$ .ajax的'error'参数内为特定请求添加额外的处理程序