XHR
JavaScript
const xhr = new XMLHttpRequest();
xhr.open('GET', 'phones.json', true); // асинхронный
// xhr.open(method, URL, async, user, password) замораживаем или нет поток
xhr.send();
//xhr.send([body]) отправка запроса
xhr.onreadystatechange = function(){
// ...
// ответ: status, statusText, responseText
if (xhr.status != 200) {
console.log( xhr.status + ': ' + xhr.statusText );
} else {
console.log( xhr.responseText );
}
}
// setRequestHeader(name, value)
// Устанавливает заголовок name запроса со значением value
// xhr.timeout = 30000; максимальная продолжительность запросов
/* Событие readystatechange происходит несколько раз в процессе отсылки и получения ответа. При этом можно посмотреть «текущее состояние запроса» в свойстве xhr.readyState. */
// UNSENT = 0; // начальное состояние
// OPENED = 1; // вызван open
// HEADERS_RECEIVED = 2; // получены заголовки
// LOADING = 3; // загружается тело (получен очередной пакет данных)
// DONE = 4; // запрос завершён