.ajaxError()
分类:Ajax > 全局Ajax事件处理
返回: jQuery
.ajaxError( handler )
描述:注册一个处理函数,在Ajax请求以出错告终时调用它。这是一个Ajax事件。
加入于: 1.0
.ajaxError( handler )- handler要被调用执行的函数。
每当一个Ajax请求以出错告终时,jQuery触发ajaxError事件。任何已经用.ajaxError()方法注册到该事件的处理函数都会在这个时候执行。注意:注意:不会针对跨域脚本和跨域JSONP请求调用该处理函数。
要想在实践中观察该方法,只要设置一个基本的Ajax载入请求:
<button class="trigger">Trigger</button> <div class="result"></div> <div class="log"></div>
向document附加一个事件处理函数。
$( document ).ajaxError(function() {
$( ".log" ).text( "Triggered ajaxError handler." );
});
现在,用任何jQuery方法制作一个Ajax请求:
$( "button.trigger" ).on( "click", function() {
$( "div.result" ).load( "ajax/missing.html" );
});
用户点击了这个按钮之后,Ajax请求会失败,因为请求的文件缺失了,将显示记录消息。
所有的ajaxError处理函数都会被调用执行,无论是哪个Ajax请求结束时。要想区分这些请求,请使用传递给处理函数的参数。每次执行一个ajaxError处理函数的时候,会向它传递该事件对象、jqXHR对象(jQuery 1.5以前的版本使用XMLHttpRequest对象)、以及创建请求时所用到的setting对象。当发生了一个HTTP错误的时候,第四个参数(thrownError)接收HTTP状态的文本部分,比如说“Not Found” 或者“Internal Server Error”。举个例子,你可能限制回调函数只处理与特定URL有关的事件:
$( document ).ajaxError(function( event, jqxhr, settings, thrownError ) {
if ( settings.url == "ajax/missing.html" ) {
$( "div.log" ).text( "Triggered ajaxError handler." );
}
});
其它说明
- 自从jQuery 1.9以后,所有的用于jQuery全局Ajax事件的处理函数,包括用
.ajaxError方法添加的处理函数,必须附加到document上。 - 如果在调用
$.ajax()方法或者$.ajaxSetup()方法时,global选项被设置为false,将不会引发.ajaxError()方法。
示例
当一个Ajax请求失败时显示一条消息。
$( document ).ajaxError(function( event, request, settings ) {
$( "#msg" ).append( "<li>Error requesting page " + settings.url + "</li>" );
});