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