.ajaxError()


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

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

Всякий раз при завершении Ajax запроса с ошибкой, jQuery инициирует ajaxError событие. Все обработчики зарегистрированные при помощи метода .ajaxError() будут выполнены в этот момент. Заметка: Этот обработчик не будет вызван для кросс-доменных скриптов и кросс-доменных JSONP запросов.

Для наблюдения этого метода в действии, установим обработчик и вызовем Ajax load запрос:

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

Добавляем обработчик события к document:

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

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

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

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

Все обработчики ajaxError будут выполнены, независимо от того как Ajax запрос был завершен. Если Вам нужно различать запросы между собой, то используйте параметры передаваемые в функцию обработчик. Каждый раз когда обработчик ajaxError выполняется, ему передается объект события (event), объект XMLHttpRequest (с версии jQuery выше 1.5, the XHR object) и объект настроек (ajaxSettings) используемый для создания запроса. Когда возникает HTTP ошибка, четвертый аргумнт (thrownError) передаст текстовое обозначение HTTP статуса, такие как "Not Found" или "Internal Server Error." Например, Вы можете ограничить функцию обратного вызова при обработке события связанного с конкретным URL:

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

Примечание:

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

Пример:

Показываем сообщение когда Ajax запрос завершен с ошибкой.

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