Page 143 - 6108
P. 143
method – метод HTTP, наприклад "GET", "POST", "PUT", "DELETE" тощо.
url – DOMString, що представляє URL-адресу для надсилання запиту.
Можна використовувати не тільки http/https, а й інші протоколи, наприклад ftp,
file. При цьому є обмеження безпеки, «Same Origin Policy»: запит зі сторінки
можна відправляти тільки на той же протокол: // домен: порт, з якого
завантажена сторінка.
async – необов'язковий параметр Boolean, (за замовчуванням true). Вказує
чи виконувати операцію асинхронно. Якщо false, метод send() зупиняє
основний потік, поки не отримає відповідь. Якщо true, сповіщення про
завершену транзакцію здійснюється за допомогою підписників подій.
user – ім'я користувача, яке використовується для цілей аутентифікації (за
замовчуванням – порожній рядок).
password – пароль для використання в цілях аутентифікації (за
замовчуванням – порожній рядок).
Якщо в методі open встановити параметр async рівним false, то запит буде
синхронним. Синхронні виклики використовуються надзвичайно рідко, так як
блокують взаємодію зі сторінкою до закінчення завантаження. Відвідувач не
може навіть прокручувати її. Жодні інші оператори JavaScript не можуть бути
виконані, поки синхронний виклик не завершений
xhr.open('GET', 'phones.json', false);
xhr.send ();
// ... весь JavaScript "підвисне", поки запит не завершиться
Якщо синхронний виклик зайняв занадто багато часу, то браузер
запропонує закрити «завислу» сторінку. Через таке блокування виходить, що не
можна відіслати два запити одночасно. Крім того, можливість робити запити на
інший домен і вказувати таймаут, в синхронному режимі не працюють.
Налаштовуємо заголовки запиту
XMLHttpRequest.setRequestHeader (header, value)
header – назва заголовка, значення якого має бути встановлено (крім
заборонених імен).
value – значення заголовка.
xhr.setRequestHeader ( 'Content-Type', 'application / json');
Не можна встановити заголовки, які контролює браузер. Заборонено
встановлювати всі заголовки назва яких починається з Proxy- чи Sec-, а також
наступні заголовки: Accept-Charset, Accept-Encoding, Access-Control-Request-
Headers, Access-Control-Request-Method, Connection, Content-Length, Cookie,
Cookie2, Date, DNT, Expect, Host, Keep-Alive, Origin, Referer, TE, Trailer,
Transfer-Encoding, Upgrade, Via.
Відправляємо запит за допомогою методу send().
XMLHttpRequest.send([body])
body – вказує на дані, які передаються в запит. Не кожен запит має є тіло,
наприклад у GET-запитів тіла немає, а у POST – основні дані якраз передаються
через body.
function reqListener () {