jqXHR-объект

jQuery XMLHttpRequest (jqXHR) появился в библиотеке jQuery в версии 1.5 и является расширенным вариантом объекта XMLHttpRequest. Например, он всегда будет содержать поля responseText и responseXML, а так же метод getResponseHeader(). Если запрос не предполагает использование нативного XMLHttpRequest (например в случае кроссдоменного запроса скрипта), jQuery создает jqXHR с нуля, и заполняет его насколько это возможно.

jqXHR-объекты возвращаемые методом jQuery.ajax() реализуют интерфейс Promise, предоставляя им все свойства, методы и поведение Promise. Эти методы принимают одну или несколько функций в качестве аргументов, вызываемые методом jQuery.ajax(), когда запрос завершается. Такой подход позволяет назначить несколько обработчиков на один AJAX-запрос и даже после отправки запроса. (Если запрос завершен, обработчик будет исключен.)

Доступны следующие методы интерфейса Promise в jqXHR-объекте:

  • jqXHR.done()
  • jqXHR.fail()
  • jqXHR.always()
  • jqXHR.then()

Метод jqXHR.done()

jqXHR.done(function(data, textStatus, jqXHR) {});

Метод jqXHR.done() является альтернативой обработчика успешного завершения AJAX-запроса. Заменяет устаревший метод jqXHR.success().

Метод jqXHR.fail()

jqXHR.fail(function(jqXHR, textStatus, errorThrown) {});

Метод jqXHR.fail() являтся альтернативой обработчика ошибки при AJAX-запросе. Заменяет устаревший метод jqXHR.error().

Метод jqXHR.always()

jqXHR.always(function(data|jqXHR, textStatus, jqXHR|errorThrown) { });

Метод jqXHR.always() являтся альтернативой обработчика заврешения AJAX-запроса. Заменяет устаревший метод jqXHR.complete().

Обратите внимание, что при успешном запросе, аргументы метода jqXHR.always() такие же, как у метода jqXHR.done(), а при AJAX-запросе с ошибкой такие же как у метода jqXHR.fail()

Метод jqXHR.then()

Метод jqXHR.then() включает в себя функциональность методов jqXHR.done() и jqXHR.fail().

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *