Page 144 - 6108
P. 144
console.log(this.responseText);
}
var xhr = new XMLHttpRequest();
xhr.addEventListener("load", reqListener);
xhr.open("GET", "http://localhost:8080/hello.txt");
xhr.send();
Відповідь сервера: status, statusText, responseText
status – HTTP-код відповіді: 200, 404, 403 і так далі. Може бути також
бути рівним 0, якщо сервер не відповів або при запиті на інший домен.
statusText – текстовий опис статусу від сервера: OK, Not Found,
Forbidden і так далі.
responseText – текст відповіді сервера.
Є і ще одна властивість, яке використовується набагато рідше,
responseXML
Якщо сервер повернув XML, забезпечивши його правильним заголовком
Content-type: text/xml, то браузер створить з нього XML-документ. По
ньому можна буде робити запити
xhr.responseXml.querySelector("...") та інші.
Воно використовується рідко, так як зазвичай використовують не XML, а
JSON. Тобто, сервер повертає JSON у вигляді тексту, який браузер перетворює
в об'єкт викликом JSON.parse(xhr.responseText).
Подія readystatechange
Подія readystatechange відбувається кілька разів в процесі відсилання
та отримання відповіді. При цьому можна подивитися «поточний стан запиту»
у властивості xhr.readyState.
Всі стану readyState, згідно специфікації:
– UNSENT = 0; // початковий стан
– OPENED = 1; // викликаний open
– HEADERS_RECEIVED = 2; // отримані заголовки
– LOADING = 3; // завантажується тіло (отриманий черговий пакет даних)
– DONE = 4; // запит завершений
Запит проходить їх в порядку 0 → 1 → 2 → 3 → ... → 3 → 4, стан 3
повторюється при кожному отриманні чергового пакета даних по мережі.
3.6.2 HTTP-заголовки
XMLHttpRequest вміє як вказувати свої заголовки в запиті, так і читати
надіслані у відповідь.
Метод getResponseHeader (name) – повертає значення заголовка name
відповіді, крім Set-Cookie і Set-Cookie2.
xhr.getResponseHeader ( 'Content-Type');
"text/html; charset=utf-8"