在我的页面上完成任何ajax请求时执行回调

时间:2016-02-20 23:08:56

标签: javascript jquery ajax

我有一个js文件(使用jQuery)正在发出ajax请求。问题是我想重定向到登录'每当error.status == 401(未经授权),但我不想在任何地方都这样做,有一个ajax调用。

{{1}}

2 个答案:

答案 0 :(得分:1)

定义一个新函数,它可以执行您想要的操作并在错误回调中调用它:

var errorFunction = function(responsetext) {
    notice(responsetext +' Please <a href="/login">Login.</a>', 'error');
}

然后:

error: function(e){
    if(e.status == 401){
        errorFunction(e.responseText);
    }
}

答案 1 :(得分:0)

您可以使用全局ajaxError()并根据您可以分配给beforeSend回调

中特定请求中的任何xhr对象的网址或特殊属性等设置来定义条件

ajaxerror() docs

修改的示例
$( document ).ajaxError(function( event, jqxhr, settings, thrownError ) {
  if ( settings.url == "ajax/missing.html" ) {
    $( "div.log" ).text( "Triggered ajaxError handler." );
    // do a redirect
    window.location = '/path/to/login';
  }
});