JQuery捕获任何ajax错误

MR.*_*ABC 17 javascript ajax jquery

我喜欢捕捉任何ajax 401 Unauthorised异常,但不喜欢改变我所有的ajax查询.有没有办法为任何$ .ajax调用更改它(覆盖任何error处理程序)?

Aru*_*hny 24

你可以使用全局ajax事件处理程序.ajaxError()

$( document ).ajaxError(function( event, jqxhr, settings, exception ) {
    if ( jqxhr.status== 401 ) {
        $( "div.log" ).text( "Triggered ajaxError handler." );
    }
});
Run Code Online (Sandbox Code Playgroud)


pal*_*aѕн 13

你可以这样做:

$(function() {
    $.ajaxSetup({
        error: function(jqXHR, exception) {
            if (jqXHR.status === 401) {
                alert('HTTP Error 401 Unauthorized.');
            } else {
                alert('Uncaught Error.\n' + jqXHR.responseText);
            }
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

这将在您的任何ajax通话中捕获错误.

  • 如果ajax调用在`$ .ajax({url:'',error:function(){}}等选项中指定了`error`回调,它将失败. (2认同)