我喜欢捕捉任何 ajax401 Unauthorised
异常,但不喜欢更改我所有的 ajax 查询。有没有办法为任何 $.ajax 调用更改它(覆盖任何error
处理程序)?
问问题
20268 次
5 回答
28
您可以使用全局 ajax 事件处理程序.ajaxError()
$( document ).ajaxError(function( event, jqxhr, settings, exception ) {
if ( jqxhr.status== 401 ) {
$( "div.log" ).text( "Triggered ajaxError handler." );
}
});
于 2013-08-01T09:22:21.280 回答
13
你可以这样做:
$(function() {
$.ajaxSetup({
error: function(jqXHR, exception) {
if (jqXHR.status === 401) {
alert('HTTP Error 401 Unauthorized.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
});
ajax
这将在您的任何调用中捕获错误。
于 2013-08-01T09:22:36.977 回答
2
该$.ajaxSetup()
函数将允许您为 Ajax 调用指定全局选项。但是要小心,因为其他调用ajaxSetup()
将覆盖全局选项,并且该ajax()
方法的指定本地选项将覆盖全局设置。
于 2013-08-01T09:23:01.697 回答
1
尝试使用.ajaxError()
作为全局方法http://api.jquery.com/ajaxError/
于 2013-08-01T09:22:49.507 回答
1
要捕获401
状态代码,只需添加
$.ajaxSetup({
statusCode: {
401: function(err){
console.log('Login Failed.', err.responseJSON);
// or whatever...
}
}
});
在触发 AJAX 调用之前的某个位置到您的页面。
于 2014-05-05T10:22:55.960 回答