Объект
<b>XMLHttpRequest</b>
определяет относительно высокоуровневый прикладной интерфейс к протоколу HTTP. Он учитывает такие особенности, как обработка переадресации, управление cookies и обслуживание меж доменных запросов с заголовками CORS.
Возможности объекта
<b>XMLHttpRequest</b>
, описанные выше, прекрасно поддерживаются всеми современными броузерами. На момент написания этих строк велись работы над стандартом «XMLHttpRequest Level 2», и производители броузеров уже приступили к его реализации. Свойства, методы и обработчики событий, перечисленные ниже, включают особенности, введенные спецификацией «XMLHttpRequest Level 2», которые могут быть реализованы не во всех броузерах. Эти новые особенности помечены строкой «XHR2».
Конструктор
<b>new XMLHttpRequest()</b>
Этот конструктор, не имеющий аргументов, возвращает новый объект
<b>XMLHttpRequest</b>
.
Константы
unsigned short UNSENT = 0
Начальное состояние. Объект
<b>XMLHttpRequest</b>
только что создан или сброшен в исходное состояние вызовом метода
<b>abort()</b>
.
unsigned short OPENED = 1
Метод
<b>open()</b>
уже вызван, но обращения к методу
<b>send()</b>
еще не было. Запрос еще не отправлен.
unsigned short HEADERS.RECEIVED = 2
Вызван метод
<b>send()</b>
и приняты заголовки ответа, но тело ответа еще не принято.
unsigned short LOADING = З
Начат прием тела ответа, но прием еще не завершился.
unsigned short DONE = 4
HTTP-ответ принят полностью или прием был остановлен из-за ошибки.
Свойства
<b>readonly unsigned short readyState</b>
Состояние HTTP-запроса. В момент создания объекта
<b>XMLHttpRequest</b>
это свойство приобретает значение 0, а к моменту получения полного HTTP-ответа это значение возрастает до 4. Возможные значения свойства определяют константы, перечисленные выше.
Значение свойства
<b>readyState</b>
может уменьшаться, только если в процессе выполнения запроса был вызван метод
<b>abort()</b>
или
<b>ореп().</b>
Теоретически при каждом изменении значения этого свойства должен вызываться обработчик события
<b>onreadystatechange</b>
. Однако на практике событие гарантированно возникает, только когда свойство
<b>readyState</b>
получает значение 4. (События «progress», введенные спецификацией XHR2, обеспечивают более надежный способ слежения за ходом выполнения запроса.)
<b>readonly any response</b>
В спецификации XHR2 это свойство хранит ответ сервера. Тип свойства зависит от значения свойства
<b>responseType</b>
. Если
<b>responseType</b>
содержит пустую строку или строку «text», данное свойство содержит тело ответа в виде строки. Если
<b>responseType</b>
содержит строку «document», значением данного свойства будет объект
<b>Document</b>
, полученный в результате разбора XML- или HTML-документа в теле ответа. Если
<b>responseType</b>
содержит строку «arraybuffer», значением данного свойства будет объект
<b>ArrayBuffer</b>
, представляющий двоичные данные в теле ответа. А если
<b>responseType</b>
содержит строку «ЫоЬ», значением данного свойства будет объект
<b>Blob</b>
, представляющий двоичные данные в теле ответа.
<b>readonly string responseText</b>
Если значение свойства
<b>readyState</b>
меньше 3, данное свойство будет содержать пустую строку. Если значение свойства
<b>readyState</b>
равно 3, данное свойство возвращает часть ответа, которая была принята к текущему моменту. Если значение свойства
<b>readyState</b>
равно 4, это свойство содержит полное тело ответа.
Если в ответе имеется заголовок, определяющий кодировку символов в теле ответа, используется эта кодировка, в противном случае предполагается кодировка UTF-8.
<b>string responseType</b>
В спецификации ХHR2 это свойство определяет тип ответа и тип свойства
<b>response</b>
. Допустимыми значениями являются «text», «document», «arraybuffer» и «blob».
Значением по умолчанию является пустая строка, которая также является синонимом значения «text». Если установить это свойство вручную, последующие попытки обратиться к свойствам
<b>responseText</b>
и
<b>responseXML</b>
будут возбуждать исключения и для получения ответа сервера необходимо будет использовать свойство
<b>response</b>
, предусмотренное спецификацией XHR2.
<b>readonly Document responseXML</b>
Ответ на запрос, который интерпретируется как XML- или HTML-документ и возвращается в виде объекта
<b>Document</b>
. Это свойство будет иметь значение null, если тело ответа еще не получено или оно не является допустимым XML или HTML-документом.
<b>readonly unsigned short status</b>
HTTP-код состояния, полученный от сервера, такой как 200 - в случае успеха, 404 - в случае ошибки отсутствия документа или 0 - если сервер еще не прислал код состояния.
<b>readonly string statusText</b>
Это свойство содержит текст, соответствующий HTTP-коду состояния в ответе. То есть, когда свойство
<b>status</b>
имеет значение 200, это свойство содержит строку «ОК», а когда 404 - строку «Not Found». Это свойство содержит пустую строку, если сервер еще не прислал код состояния.
<b>unsigned long timeout</b>
Свойство, введенное спецификацией XHR2, определяющее предельное время ожидания ответа в миллисекундах. Если выполнение HTTP-запроса займет больше времени, чем указано в данном свойстве, он будет прерван и будет сгенерировано событие «timeout». Это свойство можно установить только после вызова метода
<b>open() </b>
и перед вызовом метода
<b>send().</b>