Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

5. После того как свойство

readyState
достигнет значения 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». Это свойство можно установить только после вызова метода

open
и перед вызовом метода
send.

Поделиться:
Популярные книги

Законы Рода. Том 6

Андрей Мельник
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

An ordinary sex life

Астердис
Любовные романы:
современные любовные романы
love action
5.00
рейтинг книги
An ordinary sex life

Путёвка в спецназ

Соколов Вячеслав Иванович
1. Мажор
Фантастика:
боевая фантастика
7.55
рейтинг книги
Путёвка в спецназ

Тактик

Земляной Андрей Борисович
2. Офицер
Фантастика:
альтернативная история
7.70
рейтинг книги
Тактик

Правильный лекарь. Том 7

Измайлов Сергей
7. Неправильный лекарь
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Правильный лекарь. Том 7

Шайтан Иван 6

Тен Эдуард
6. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
7.00
рейтинг книги
Шайтан Иван 6

Ненаглядная жена его светлости

Зика Натаэль
Любовные романы:
любовно-фантастические романы
6.23
рейтинг книги
Ненаглядная жена его светлости

Идеальный мир для Лекаря 20

Сапфир Олег
20. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 20

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

Студиозус

Шмаков Алексей Семенович
3. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Студиозус

Вперед в прошлое 5

Ратманов Денис
5. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 5

Двойник Короля 8

Скабер Артемий
8. Двойник Короля
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Двойник Короля 8

Снайпер

Поселягин Владимир Геннадьевич
3. Жнец
Фантастика:
боевая фантастика
попаданцы
5.60
рейтинг книги
Снайпер

Моров. Том 8

Кощеев Владимир
7. Моров
Фантастика:
альтернативная история
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Моров. Том 8