Spec-Zone.ru › jQuery

событие ajaxError

.on( "ajaxError", handler )Возвращает: jQuery

Описание: Регистрирует обработчик, который вызывается при завершении запросов Ajax с ошибкой. Это событие Ajax.

  • версия добавлена: 1.7.on( "ajaxError", handler )

    • "ajaxError"
      Тип: строка
      Строка "ajaxError".
    • handler
      Тип: Функция( Событие event, jqXHR jqXHR, Объект ajaxSettings, Строка thrownError )
      Функция, которая будет вызвана.

Эта страница описывает событие ajaxError. Для устаревшего метода .ajaxError(), см. .ajaxError().

Всякий раз, когда запрос Ajax завершается с ошибкой, jQuery вызывает событие ajaxError. Все зарегистрированные обработчики ajaxError будут выполнены в этот момент. Примечание: Этот обработчик не вызывается для запросов скриптов и JSONP с запросами между доменами.

Чтобы наблюдать за работой этого метода, настройте базовый запрос загрузки Ajax.

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

Прикрепите обработчик событий к документу:

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

Теперь выполните запрос Ajax с помощью любого метода jQuery:

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

Когда пользователь щелкает по кнопке, и запрос Ajax завершается ошибкой, потому что запрашиваемый файл отсутствует, отображается сообщение об ошибке.

Все обработчики ajaxError вызываются независимо от того, какой запрос Ajax был завершен. Чтобы отличить запросы, используйте параметры, передаваемые обработчику. Каждый раз, когда выполняется обработчик ajaxError, ему передается объект события, объект jqXHR (до jQuery 1.5, объект XHR), и объект настроек, который использовался при создании запроса. При возникновении ошибки HTTP, четвертый аргумент (thrownError) получает текстовую часть HTTP-статуса, такую как "Не найдено" или "Внутренняя ошибка сервера". Например, чтобы ограничить обратный вызов ошибки обработкой событий, связанных только с определенным URL:

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

Дополнительные заметки:

  • Начиная с jQuery 1.9, все обработчики глобальных событий Ajax jQuery, в том числе добавленные с помощью .on( "ajaxError", ... ), обязательно должны быть прикреплены к document.
  • Если $.ajax() или $.ajaxSetup() вызываются с параметром global установленным в false, событие ajaxError не будет запущено.

Пример:

Показать сообщение при ошибке запроса Ajax.

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

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/ajaxError

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API