jQuery метод .ajaxError()

Определение и применение

jQuery метод .ajaxError() позволяет задать функцию (обработчик события), которая вызывается в том случае, если AJAX запрос завершился ошибкой.

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

JavaScript
$( document ).ajaxEvent( handler ) // пример добавления обработчика для глобального AJAX события

jQuery синтаксис:

Синтаксис 1.0:

Код
.ajaxError( handler )

handler - Function( Event event, jqXHR jqXHR, PlainObject ajaxOptions, String thrownError )

Добавлен в версии jQuery

1.0

Значения параметров

Параметр Описание
handler Задает функцию, которая будет выполнена в том случае, если AJAX запрос завершился ошибкой. Является обязательным параметром метода. Функция принимает следующие параметры:
  • event - содержит объект события Event.
  • jqXHR - содержит объект XMLHTTPRequest
  • ajaxOptions - содержит параметры, используемые в AJAX запросе.
  • thrownError - в случае возникновения HTTP ошибки содержит её текстовой статус в виде строки (например, "Not Found", или "Internal Server Error")

Пример старого кода

Пример использования jQuery метода .ajaxError()

Этот пример требует отдельного документа или сервера. Условия запуска указаны в коде и пояснении рядом. В редакторе используется jQuery 4.0.0.

Исходный код для изучения. Запуск на этой странице недоступен.

index.html
HTML
<button>Клик</button><span></span><br /><br />
<div></div>
main.js
JavaScript
$(document).ready(function () {
    $('button').click(function () {
        $('div').load('missing-response')
    })

    $(document).ajaxError(function (event, xhr, options, thrownError) {
        if (options.url == 'missing-response') $('span').text("it's ajaxError")
        console.log(thrownError)
    })
})

В этом примере с использованием jQuery метода .load() мы при нажатии на элемент <button> (кнопка) с использованием AJAX запроса пытаемся загрузить данные с сервера и разместить возвращенный HTML код внутри элемента <div>. Загружаемый файл ("missing-response") отсутствует, что приводит к ошибке.

С использованием метода .ajaxError() задаем функцию (обработчик события), которая вызывается каждый раз после того как AJAX запрос завершился ошибкой. Функция производит проверку на наличие в объекте, содержащего настройки AJAX запроса ключа "url", который содержит значение missing-response. Если содержит, то в элемент <span> с использованием метода .text() производит добавление текстового содержимого. Кроме того, мы выводим в консоль информацию об ошибке HTTP (текстовый статус). В нашем случае - "Not Found".


Результат нашего примера:

Пример использования jQuery метода .ajaxError().
Пример использования jQuery метода .ajaxError()