JavaScript XMLHttpRequest.setRequestHeader() — заголовок запиту
Метод setRequestHeader() додає заголовок до запиту.
Загальний опис
Викликати його можна лише між open() і send() — раніше чи пізніше буде помилка.
Частину заголовків браузер не дозволить задати взагалі: Host, Cookie, Content-Length, Origin, Referer. Ними керує сам браузер, і підмінити їх із коду не можна — це питання безпеки, а не зручності.
Повторний виклик із тим самим іменем не замінює значення, а дописує його через кому.
автор: NagarD
- Нотатка
-
Виставляти
автор: NagarDContent-Typeпри відправціFormData— типова помилка. Браузер додає туди межу (boundary), і ручний заголовок її затирає, після чого сервер не може розібрати тіло.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| setRequestHeader | 1+ | 1+ | 1.2+ | 8+ | 12+ | 7+ |
| Переглядач | ||||
|---|---|---|---|---|
| setRequestHeader | yes | yes | yes | yes |
Приклади
+ запропонувати свій приклад у пісочниці
Заголовки авторизації — і той, який чіпати не можна.
const token = 'secret-token-123';
const data = { id: 1 };
const xhr = new XMLHttpRequest();
xhr.open('POST', '/api/save');
// лише між open() і send(); значення — тільки латинка (ByteString)
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
// а це браузер мовчки проігнорує:
// xhr.setRequestHeader('Cookie', '...');
xhr.onerror = () => console.log('Сервера немає — але заголовки поставлено');
xhr.send(JSON.stringify(data));
Коментарі
Коментарів ще немає — будьте першим!