當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。