当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JQuery .ajaxError()用法及代码示例


用法
.ajaxError( handler ) => jQuery

说明:注册一个在 Ajax 请求完成并出现错误时调用的处理程序。这是个阿贾克斯事件.

每当 Ajax 请求完成并出现错误时,jQuery 都会触发ajaxError事件。任何和所有已注册的处理程序.ajaxError()方法在这个时候被执行。注意: This handler is not called for cross-domain script and cross-domain JSONP requests.

要观察此方法的实际效果,请设置一个基本的 Ajax 加载请求。

<button class="trigger">Trigger</button>
<div class="result"></div>
<div class="log"></div>

将事件处理程序附加到文档:

$( document ).ajaxError(function() {
  $( ".log" ).text( "Triggered ajaxError handler." );
});

现在,使用任何 jQuery 方法发出 Ajax 请求:

$( "button.trigger" ).on( "click", function() {
  $( "div.result" ).load( "ajax/missing.html" );
});

当用户单击按钮并且 Ajax 请求失败时,由于请求的文件丢失,将显示日志消息。

无论完成了什么 Ajax 请求,都会调用所有 ajaxError 处理程序。要区分请求,请使用传递给处理程序的参数。每次执行 ajaxError 处理程序时,都会传递事件对象、jqXHR 对象(在 jQuery 1.5 之前,XHR 对象)和用于创建请求的设置对象。发生 HTTP 错误时,第四个参数 (thrownError) 接收 HTTP 状态的文本部分,例如 "Not Found" 或“内部服务器错误”。例如,要将错误回调限制为仅处理处理特定 URL 的事件:

$( document ).ajaxError(function( event, jqxhr, settings, thrownError ) {
  if ( settings.url == "ajax/missing.html" ) {
    $( "div.log" ).text( "Triggered ajaxError handler." );
  }
});

其他注意事项:

  • 从 jQuery 1.9 开始,jQuery global Ajax events 的所有处理程序,包括使用 .ajaxError() 方法添加的处理程序,must 都附加到 document
  • 如果在 global 选项设置为 false 的情况下调用 $.ajax()$.ajaxSetup() ,则不会触发 .ajaxError() 方法。

例子:

当 Ajax 请求失败时显示一条消息。

$( document ).ajaxError(function( event, request, settings ) {
  $( "#msg" ).append( "<li>Error requesting page " + settings.url + "</li>" );
});

相关用法


注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 .ajaxError()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。