Функция 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.