XHR

by Ksenia Polyakova

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; // запрос завершён