JavaScript метод XMLHttpRequest.getAllResponseHeaders()
JavaScript XMLHttpRequestОпределение и применение
JavaScript метод getAllResponseHeaders() объекта XMLHttpRequest возвращает все заголовки ответа, разделенные разрывом строки (CRLF - символы \r\n) в виде строки или null, если ответ не был получен.
Обращаю Ваше внимание на то, что если произошла сетевая ошибка, то в качестве значения возвращается пустая строка. В современных браузерах имена заголовков возвращаются в нижнем регистре.
Обработка cookies выполняется объектом XMLHttpRequest в автоматическом режиме и он исключает заголовки "Cookie" из множества заголовков, возвращаемых методом getAllResponseHeaders(), и возвращает null, если передать аргумент "Set-Cookie" или "Set-Cookie2" методу getResponseHeader(). Заголовки CORS, как и cookie отфильтровываются и не могут быть получены.
Если вам нужно получить строку, содержащую текст определенного заголовка, то используйте метод getResponseHeader().
Поддержка браузерами
Метод | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|
getAllResponseHeaders() | Да | Да | Да | Да | Да | Да |
JavaScript синтаксис:
const myHeaders = XMLHttpRequest.getAllResponseHeaders();
Cпецификация
XMLHttpRequestПример использования
let xhr = new XMLHttpRequest(); // инициализируем переменную новым объектом XMLHttpRequest xhr.open("GET", "script.php"); // определяем параметры для запроса на определенный адрес xhr.send(); // отправляем запрос на сервер xhr.onreadystatechange = function() { // устанавливаем обработчик события if(xhr.readyState === 2) { // проверяем состояние запроса const contentType = xhr.getAllResponseHeaders(); // возвращаем строку, содержащую все заголовки ответа console.log(contentType); // выводим значение переменной в консоль } }
В этом примере мы инициализируем переменную новым объектом XMLHttpRequest, определяем параметры для "GET" запроса на определенный адрес, и с помощью метода send() отправляем этот запрос. С помощью обработчика onreadystatechange, который срабатывает каждый раз когда изменяется значение свойства readyState, мы проверяем если значение этого свойства соответствует значению 2 (HEADERS_RECEIVED) - метод send() объекта был вызван, заголовки и статус доступны.
После этого с помощью метода getAllResponseHeaders() объекта XMLHttpRequest возвращаем строку, содержащую все заголовки ответа и выводим это значение в консоль.
JavaScript XMLHttpRequest