JavaScript свойство XMLHttpRequest.status
Определение и применение
JavaScript свойство status объекта
XMLHttpRequest
возвращает числовой код состояния HTTP ответа, полученный от сервера.
Поддержка браузерами
Спецификация: xhr.spec.whatwg
Поддерживается во всех основных браузерах с 2015 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
status | 1 | 12 | 1 | 8 | 1.2 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 | 1 |
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
JavaScript синтаксис
xhr.status;
Спецификация
Пример использования
GET-запрос JSON-файла и вывод телефона пользователя
Пример запрашивает user-profile.json у сервера. Для запуска сохраните полный HTML-документ, разместите рядом JSON-файл с полем phone и откройте страницу через HTTP-сервер. Здесь показан код; изображение ниже иллюстрирует ответ.
Исходный код для изучения. Запуск на этой странице недоступен.
index.html
<button data-migration-click-0="">Запросить телефон</button>
<div id="demo"></div>
main.js
const getPhone = function () {
let xhr = new XMLHttpRequest()
xhr.open('GET', 'user-profile.json')
xhr.send()
xhr.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
const data = JSON.parse(this.responseText)
document.getElementById('demo').innerHTML = 'Телефон пользователя: ' + data.phone
}
}
}
// Обработчики кнопок перенесены из HTML для запуска с CSP без inline-скриптов.
document.querySelector('[data-migration-click-0]').addEventListener('click', function () {
getPhone()
})
document.querySelector('[data-migration-click-0]').removeAttribute('data-migration-click-0')
Результат нашего примера:
В этом примере с использованием метода
addEventListener()
при нажатии на кнопку (HTML элемент
<button>) вызываем функцию getPhone, которая:
-
Вызывает конструктор объекта
XMLHttpRequestи инициализирует переменную новым объектом этого типа. -
С помощью метода
open()объектаXMLHttpRequestопределяем параметры для запроса - указываем, что HTTP запрос будет осуществлен методом "GET", а в качестве URL адреса, на который будет отправлен запрос, мы задаем файл формата JSON. Файл размещен на том же сервере и в том же каталоге, что и документ, с которого выполняется скрипт. Файл имеет следующий вид:JSON{ "firstName": "Василий", "lastName": "Джейсонов", "age": 25, "phone": 88005553535 } -
С помощью метода
send()объектаXMLHttpRequestотправляем запрос на сервер. -
С использованием обработчика событий
onreadystatechange, вызываемого при запуске событияreadystatechange, то есть при каждом изменении свойстваreadyStateобъектаXMLHttpRequestмы вызываем функцию, которая проверяет состояние запроса, оно должно соответствовать значению4(операция полностью завершена) и числовой код состояния HTTP ответа (свойствоstatus) должен соответствовать значению200(успешный запрос). Если условия выполнены, то с использованием методаJSON.parse()анализируем строку в форматеJSONи инициализируем переменную значением, полученным в ходе анализа. После этого с помощью методаgetElementById()находим элемент с определенным глобальным атрибутомidи изменяем его содержимое значением ключа объекта, содержащегося в инициализированной ранее переменной.