Статьи

Что такое объект jqXHR?

Функция jQuery.ajax () — это просто один большой объект jqXHR (по сути, поддельный объект javaScript xhr).

  • JQXHR (jQuery XMLHttpRequest) заменяет собственный объект браузера XMLHttpRequest.
  • jQuery оборачивает собственный объект XMLHttpRequest браузера с помощью расширенного API.
  • Объект jQuery XMLHttpRequest (jqXHR) возвращается функцией $ .ajax ().
  • Объект jqXHR имитирует встроенную функциональность XHR, где это возможно.

Так что же это делает?

  • Он обрабатывает заголовки HTTP-запросов (Last-Modified, etag, Content-Type, MIME-типы и т. Д.).
  • Он обрабатывает обратные вызовы запроса (включая ответные обратные вызовы .done (), .fail () и т. Д.)
  • Он обрабатывает любые префильтры, установленные для запроса.
  • Он обрабатывает любые таймауты, установленные для запроса.
  • Он обрабатывает любые междоменные вызовы (включая jsonp).

В исходном коде jQuery это даже комментируется как Fake XHR

// Fake xhr jqXHR = { ... } 

jqZHR реализует интерфейс Promise

Объекты jqXHR, возвращаемые $ .ajax (), реализуют интерфейс Promise. Объект обладает всеми свойствами, методами и поведением Обещания. Узнайте больше на deferred.promise () .

jqXHR Обратная совместимость с XMLHttpRequest

Для обратной совместимости с XMLHttpRequest объект jqXHR будет предоставлять следующие свойства и методы: readyState, status, statusText, responseXML и / или responseText (с xml и / или текстовым ответом соответственно), getAllResponseHeaders (), getResponseHeader (), abort ( ) и setRequestHeader (). Поскольку success, error, complete и statusCode удовлетворяют всем требованиям, jqXHR не предоставляет никакой поддержки onreadystatechange .

 // Attach deferreds deferred.promise( jqXHR ).complete = completeDeferred.add; jqXHR.success = jqXHR.done; jqXHR.error = jqXHR.fail; 

Справочная информация по запросу XHR

XMLHttpRequest (XHR) — это API, доступный на языках сценариев веб-браузера, таких как JavaScript. Он используется для отправки запросов HTTP или HTTPS непосредственно на веб-сервер и загрузки данных ответа сервера непосредственно обратно в сценарий.

  • XMLHttpRequest — это объект JavaScript, разработанный Microsoft и принятый Mozilla, Apple и Google.
  • Несмотря на свое название, XMLHttpRequest может использоваться для извлечения данных любого типа, не только XML, и поддерживает протоколы, отличные от HTTP (включая file и ftp).
  • XMLHttpRequest подчиняется той же политике происхождения браузера, что по соображениям безопасности запросы будут успешными только в том случае, если они направлены на тот же сервер, который обслуживал исходную веб-страницу.
  • Концепция объекта XMLHttpRequest была изначально разработана разработчиками Outlook Web Access (Microsoft) для Microsoft Exchange Server 2000.

Дальнейшее чтение