我在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

最佳答案

我认为问题是:您使用ajaxSetup的方式错误。检查ajaxSetup docs中的注释:


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


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

关于javascript - 如何将错误从$ .ajax实例冒泡到$ .ajaxSetup?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39916367/

10-12 13:15