jQuery.ajaxSetup:使用statusCode覆盖错误

时间:2012-01-18 18:31:06

标签: jquery ajax

我有以下代码用于默认的jQuery AJAX错误处理:

$.ajaxSetup({
    error : function(jqXHR, textStatus, errorThrown) {
        alert("Error: " + textStatus + ": " + errorThrown);
    },
    statusCode : {
        404: function() {
            alert("Element not found.");
        }
    }
});

然而,当404发生时,BOTH函数被上调:首先是错误,然后是 statusCode ,所以我看到连续2次警报。

如果 statusCode 未被提升,如何防止此行为并获取错误回调?

2 个答案:

答案 0 :(得分:23)

如何在错误处理程序中检查状态代码404?

$.ajaxSetup({
    error : function(jqXHR, textStatus, errorThrown) {
        if (jqXHR.status == 404) {
            alert("Element not found.");
        } else {
            alert("Error: " + textStatus + ": " + errorThrown);
        }
    }
});

答案 1 :(得分:11)

试试这个:

$.ajaxSetup({
error : function(jqXHR, textStatus, errorThrown) {
    if(jqXHR.status === 404) {
      alert("Element not found.");
    } else {
      alert("Error: " + textStatus + ": " + errorThrown);
    }
}
});