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

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

Жанры

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.

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

Ученик. Книга третья

Первухин Андрей Евгеньевич
3. Ученик
Фантастика:
фэнтези
7.64
рейтинг книги
Ученик. Книга третья

Кодекс Охотника. Книга XXXV

Винокуров Юрий
35. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXV

Охотник за головами

Вайс Александр
1. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Охотник за головами

Хозяин Стужи 3

Петров Максим Николаевич
3. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
7.00
рейтинг книги
Хозяин Стужи 3

Ваше Сиятельство 5

Моури Эрли
5. Ваше Сиятельство
Фантастика:
городское фэнтези
аниме
5.00
рейтинг книги
Ваше Сиятельство 5

Родословная. Том 3

Ткачев Андрей Юрьевич
3. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Родословная. Том 3

Гром Раскатного. Том 2

Володин Григорий Григорьевич
2. Штормовой Предел
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Гром Раскатного. Том 2

Лекарь Империи 2

Карелин Сергей Витальевич
2. Лекарь Империи
Фантастика:
городское фэнтези
аниме
дорама
фэнтези
попаданцы
5.00
рейтинг книги
Лекарь Империи 2

Сирота

Ланцов Михаил Алексеевич
1. Помещик
Фантастика:
альтернативная история
5.71
рейтинг книги
Сирота

Инженер Петра Великого

Гросов Виктор
1. Инженер Петра Великого
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Инженер Петра Великого

Я еще не царь

Дрейк Сириус
25. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я еще не царь

Бояръ-Аниме. Газлайтер. Том 33

Володин Григорий Григорьевич
33. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 33

Кодекс Охотника. Книга XXVII

Винокуров Юрий
27. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXVII

Я еще барон. Книга III

Дрейк Сириус
3. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще барон. Книга III