javascript - 如何将错误从 $.ajax 实例冒泡到 $.ajaxSetup?

标签 javascript jquery ajax exception 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

最佳答案

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

Note: Global callback functions should be set with their respective global Ajax event handler methods—.ajaxStart(), .ajaxStop(), .ajaxComplete(), .ajaxError(), .ajaxSuccess(), .ajaxSend()—rather than within the options object for $.ajaxSetup().

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

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

相关文章:

javascript - 内部页面目标为空的 pjax

javascript - 如何检查卸载前确认框是否被点击

javascript - 在 ajax 调用后,jquery 隐藏不适用于同一个 div 类?

javascript - 一旦事件触发,即使我 `$.unbind(' 事件')`,所有处理程序都会触发。有没有办法防止事件处理程序在事件发生后触发?

Javascript 打印 html 标签作为 innerHTML 输出到屏幕的一部分

javascript - Redux-saga 无法在 Promise 中使用生成器函数?

javascript - 匹配条件替换字符串

javascript - JQuery DataTable 不采用样式

javascript - Jquery:属性禁用通过 if else 或直接放置条件启用

javascript - 如何从 JSON 对象转换为元素形式?