JavaScript XMLHttpRequest.getResponseHeader() — заголовок відповіді
Метод getResponseHeader() читає заголовок відповіді сервера — наприклад, Content-Type чи X-Total-Count.
Загальний опис
Тут чекає сюрприз, який коштує людям годин налагодження. При запиті на інший домен (CORS) браузер показує лише шість базових заголовків: Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, Pragma.
Свій заголовок (скажімо, X-Total-Count із кількістю сторінок) буде невидимим — метод поверне null, хоч у вкладці «Мережа» заголовок чудово видно.
Щоб він став доступним, сервер має перелічити його в Access-Control-Expose-Headers. Виправляється це лише на сервері, з боку клієнта — ніяк.
- Нотатка
-
Заголовок є у вкладці «Мережа», а метод повертає
автор: NagarDnull? Це CORS. Сервер має додатиAccess-Control-Expose-Headers: X-Total-Count.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 1 | 1 | 1.2 | 8 | 12 | 5 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
Приклади
+ запропонувати свій приклад у пісочниці
const xhr = new XMLHttpRequest();
xhr.onload = () => {
console.log(xhr.getResponseHeader('Content-Type')); // видно завжди
// при CORS — null, якщо сервер не дозволив явно
const total = xhr.getResponseHeader('X-Total-Count');
console.log('Усього записів:', total);
};
// На бойовій сторінці тут була б адреса API; у прикладі відповідь лежить
// просто в адресі даних, тому запит нікуди не йде
xhr.open('GET', 'data:application/json,[{"id":1},{"id":2}]');
xhr.send();
Коментарі
Коментарів ще немає — будьте першим!