Spec-Zone.ru › Web APIs

Метод XMLHttpRequest: getAllResponseHeaders()

Базовая поддержка Широко распространена

Данная функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Примечание: Данная функция доступна в Веб-воркерах, за исключением Сервис-воркеров.

Метод XMLHttpRequest getAllResponseHeaders() возвращает все заголовки ответа, разделённые CRLF, в виде строки, или возвращает null если ответ ещё не получен.

Если произошла ошибка сети, возвращается пустая строка.

Примечание: Для запросов с несколькими частями (multipart) этот метод возвращает заголовки текущей части запроса, а не исходного канала.

Синтаксис

getAllResponseHeaders()

Параметры

Нет.

Возвращаемое значение

Строка, представляющая все заголовки ответа (кроме тех, чьё имя поля равно Set-Cookie), разделённые CRLF, или null если ответ ещё не получен. При ошибке сети возвращается пустая строка.

Пример того, как выглядит исходная строка заголовков:

date: Fri, 08 Dec 2017 21:04:30 GMT\r\n
content-encoding: gzip\r\n
x-content-type-options: nosniff\r\n
server: meinheld/0.6.1\r\n
x-frame-options: DENY\r\n
content-type: text/html; charset=utf-8\r\n
connection: keep-alive\r\n
strict-transport-security: max-age=63072000\r\n
vary: Cookie, Accept-Encoding\r\n
content-length: 6502\r\n
x-xss-protection: 1; mode=block\r\n

Каждая строка завершается символами возврата каретки и перевода строки (\r\n). Они служат разделителями между заголовками.

Примечание: В современных браузерах имена заголовков возвращаются в нижнем регистре, согласно последнему спецификации.

Примеры

В этом примере рассматриваются заголовки в событии readystatechange запроса. Код демонстрирует, как получить исходную строку заголовков, а также как преобразовать её в массив отдельных заголовков, а затем использовать этот массив для создания отображения имён заголовков и их значений.

const request = new XMLHttpRequest();
request.open("GET", "foo.txt", true);
request.send();

request.onreadystatechange = () => {
  if (request.readyState === this.HEADERS_RECEIVED) {
    // Get the raw header string
    const headers = request.getAllResponseHeaders();

    // Convert the header string into an array
    // of individual headers
    const arr = headers.trim().split(/[\r\n]+/);

    // Create a map of header names to values
    const headerMap = {};
    arr.forEach((line) => {
      const parts = line.split(": ");
      const header = parts.shift();
      const value = parts.join(": ");
      headerMap[header] = value;
    });
  }
};

После этого можно, например:

const contentType = headerMap["content-type"];

Это получит значение заголовка Content-Type в переменную contentType.

Спецификации

Спецификация
XMLHttpRequest
# the-getallresponseheaders()-method

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
getAllResponseHeaders 1 12
1Начиная с Firefox 49, пустые заголовки возвращаются как пустые строки, если значение предпочтения network.http.keep_empty_response_headers_as_empty_string установлено в true, по умолчанию false. До Firefox 49 пустые заголовки игнорировались. Начиная с Firefox 50, значение по умолчанию true.
≤12.1 1.2 18
4Начиная с Firefox для Android 49, пустые заголовки возвращаются как пустые строки, если значение предпочтения network.http.keep_empty_response_headers_as_empty_string установлено в true, по умолчанию false. До Firefox для Android 49 пустые заголовки игнорировались. Начиная с Firefox для Android 50, значение по умолчанию true.
≤12.1 1 1.0 4.4
header_names_lowercase 60 79 64 47 11 60 64 44 11 8.0 60

См. также

  • Использование XMLHttpRequest
  • Установка заголовков запроса: setRequestHeader()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API