Spec-Zone.ru › Web APIs

Заголовки

Базовая линия Широко доступна *

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

* Некоторые части этой функции могут иметь различный уровень поддержки.

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

Примечание: Эта функция доступна в Web Workers.

Интерфейс Headers из API Fetch позволяет выполнять различные действия с заголовками HTTP-запроса и ответа. Эти действия включают извлечение, установку, добавление и удаление заголовков из списка заголовков запроса.

Вы можете получить доступ к объекту Headers через свойства Request.headers и Response.headers, а также создать новый объект Headers с помощью конструктора Headers().

Примечание: Дополнительную информацию о доступных заголовках можно найти в нашей справке по заголовкам HTTP.

Описание

Объект Headers имеет связанный список заголовков, который изначально пуст и состоит из нуля или более пар имя-значение. Вы можете добавить в него элементы с помощью методов, таких как append() (см. Примеры). Во всех методах этого интерфейса имена заголовков сопоставляются по байтовым последовательностям без учета регистра.

Объект, реализующий Headers, может быть непосредственно использован в структуре for...of, вместо entries(): for (const p of myHeaders) эквивалентно for (const p of myHeaders.entries()).

Ограничения на модификацию

У некоторых объектов Headers существуют ограничения на возможность изменения значения заголовков с помощью методов set(), delete() и append(). Ограничения на модификацию зависят от того, как был создан объект Headers.

  • Для заголовков, созданных с помощью конструктора Headers(), ограничений на модификацию нет.
  • Для заголовков объектов Request:
    • Если режим запроса mode равен no-cors, вы можете изменить любые заголовки запроса, разрешённые CORS.
    • В противном случае вы можете изменить любые незапрещённые заголовки.
  • Для заголовков объектов Response:
    • Если ответ создан с помощью Response.error() или Response.redirect(), или получен из вызова fetch(), заголовки являются неизменяемыми и не могут быть изменены.
    • В противном случае, если ответ создан с помощью Response() или Response.json(), вы можете изменить любые незапрещённые заголовки ответа.

Все методы Headers выбросят исключение TypeError, если вы попытаетесь передать имя, которое не является валидным именем заголовка HTTP. Операции изменения выбросят исключение TypeError , если заголовок является неизменяемым. В любом другом случае они завершатся без ошибок.

Конструктор

Headers()

Создаёт новый объект Headers.

Методы экземпляра

Headers.append()

Добавляет новое значение к существующему заголовку в объекте Headers, или добавляет заголовок, если он ещё не существует.

Headers.delete()

Удаляет заголовок из объекта Headers.

Headers.entries()

Возвращает итератор, позволяющий перебрать все пары ключ/значение, содержащиеся в этом объекте.

Headers.forEach()

Выполняет предоставленную функцию один раз для каждой пары ключ/значение в этом объекте Headers.

Headers.get()

Возвращает строковую последовательность всех значений заголовка в объекте Headers с заданным именем.

Headers.getSetCookie()

Возвращает массив, содержащий значения всех заголовков Set-Cookie, связанных с ответом.

Headers.has()

Возвращает булево значение, указывающее, содержит ли объект Headers определённый заголовок.

Headers.keys()

Возвращает итератор, позволяющий перебрать все ключи пар ключ/значение, содержащихся в этом объекте.

Headers.set()

Устанавливает новое значение для существующего заголовка в объекте Headers или добавляет заголовок, если он ещё не существует.

Headers.values()

Возвращает итератор, позволяющий перебрать все значения пар ключ/значение, содержащихся в этом объекте.

Примечание: Разница между Headers.set() и Headers.append() заключается в том, что если указанный заголовок уже существует и допускает несколько значений, Headers.set() перезапишет существующее значение новым, в то время как Headers.append() добавит новое значение в конец набора значений. См. страницы этих методов для примеров кода.

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

Примеры

В следующем фрагменте кода мы создаём новый заголовок с помощью конструктора Headers(), добавляем к нему новый заголовок с помощью append(), затем возвращаем значение этого заголовка с помощью get():

const myHeaders = new Headers();

myHeaders.append("Content-Type", "text/xml");
myHeaders.get("Content-Type"); // should return 'text/xml'

То же самое можно сделать, передав массив массивов или объект-литерал в конструктор:

let myHeaders = new Headers({
  "Content-Type": "text/xml",
});

// or, using an array of arrays:
myHeaders = new Headers([["Content-Type", "text/xml"]]);

myHeaders.get("Content-Type"); // should return 'text/xml'

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

Спецификация
Fetch
# headers-class

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

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
@@iterator 42 16 44 29 10.1 42 44 29 10.3 4.0 42
Headers 42 14 39 29 10.1 42 39 29 10.3 4.0 42
Headers 42 14 39 29 10.1 42 39 29 10.3 4.0 42
append 42 14 39 29 10.1 42 39 29 10.3 4.0 42
delete 42 14 39 29 10.1 42 39 29 10.3 4.0 42
entries 42 16 44 29 10.1 42 44 29 10.3 4.0 42
forEach 42 14 47 29 10.1 42 47 29 10.3 4.0 42
get
42До версии 57, get() возвращает только первое значение для указанного заголовка.
14
39До версии 52, get() возвращает только первое значение для указанного заголовка.
29До версии 44, get() возвращает только первое значение для указанного заголовка.
10.1
42До версии 57, get() возвращает только первое значение для указанного заголовка.
39До версии 52, get() возвращает только первое значение для указанного заголовка.
29До версии 43, get() возвращает только первое значение для указанного заголовка.
10.3
4.0До версии 7.0, get() возвращает только первое значение для указанного заголовка.
42До версии 57, get() возвращает только первое значение для указанного заголовка.
getSetCookie 113 113 112 99 17 113 112 76 17 23.0 113
has 42 14 39 29 10.1 42 39 29 10.3 4.0 42
iterate_combined_duplicates 57 16 57 44 10.1 57 57 43 10.3 7.0 57
iterate_lexicographically 57 18 57 44 10.1 57 57 43 10.3 7.0 57
keys 42 16 44 29 10.1 42 44 29 10.3 4.0 42
set 42 14 39 29 10.1 42 39 29 10.3 4.0 42
values 42 16 44 29 10.1 42 44 29 10.3 4.0 42

См. также

  • API ServiceWorker
  • Управление доступом к HTTP (CORS)
  • HTTP

© 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/Headers

Spec-Zone.ru

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