JavaScript метод XMLHttpRequest.getResponseHeader()
Определение и применение
JavaScript метод getResponseHeader() объекта XMLHttpRequest возвращает строку, содержащую текст указанного заголовка, или null, если ответ еще не был получен, или заголовок не существует в ответе.
Если вам нужно получить необработанную строку всех заголовков, то используйте метод getAllResponseHeaders(), который возвращает все заголовки ответа, разделенные разрывом строки (CRLF) в виде строки.
Обработка cookies выполняется объектом XMLHttpRequest в автоматическом режиме и он исключает заголовки "Cookie" из множества заголовков, возвращаемых методом getAllResponseHeaders(), и возвращает null, если передать аргумент "Set-Cookie" или "Set-Cookie2" методу getResponseHeader(). Заголовки CORS, как и cookie отфильтровываются и не могут быть получены.
Поддержка браузерами
Спецификация: xhr.spec.whatwg
Поддерживается во всех основных браузерах с 2015 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
getResponseHeader | 1 | 12 | 1 1 Примечание MDN (англ.) Starting from Firefox 49, empty headers are returned as empty strings in case the preference | 8 | 1.2 | 18 | 4 4 Примечание MDN (англ.) Starting from Firefox for Android 49, empty headers are returned as empty strings in case the preference | 10.1 | 1 | 1.0 | 4.4 | 1 |
поддерживается с ограничениями нет поддержки нет данных≤31 — не позднее версии 31
JavaScript синтаксис:
const myHeader = XMLHttpRequest.getResponseHeader(headerName);
headerName - String
Cпецификация
XMLHttpRequestЗначения параметров
| Параметр | Описание |
|---|---|
| headerName | Строковое значение, определяющее имя заголовка, который вы хотите вернуть в виде последовательности байтов UTF (ByteString). ByteString, представляет текстовое значение заголовка, или null, если ответ еще не получен, или заголовок не существует в ответе. При поиске имени заголовка регистр не учитывается. Обязательное значение. |
Пример использования
let xhr = new XMLHttpRequest(); // инициализируем переменную новым объектом XMLHttpRequest
xhr.open("GET", "script.php"); // определяем параметры для запроса на определенный адрес
xhr.send(); // отправляем запрос на сервер
xhr.onreadystatechange = function() { // устанавливаем обработчик события
if(xhr.readyState === 2) { // проверяем состояние запроса
const contentType = xhr.getResponseHeader("Content-Type"); // возвращаем строку, содержащую текст указанного заголовка
console.log(contentType); // выводим значение переменной в консоль
}
}
В этом примере мы инициализируем переменную новым объектом XMLHttpRequest, определяем параметры для "GET" запроса на определенный адрес, и с помощью метода send() отправляем этот запрос. С помощью обработчика onreadystatechange, который срабатывает каждый раз когда изменяется значение свойства readyState, мы проверяем если значение этого свойства соответствует значению 2 (HEADERS_RECEIVED) - метод send() объекта был вызван, заголовки и статус доступны.
После этого с помощью метода getResponseHeader() объекта XMLHttpRequest возвращаем строку, содержащую текст указанного заголовка "Content-Type" (соответствует MIME типу ресурса) и выводим это значение в консоль.