Заголовки
Базовая линия Широко доступна *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 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с заданным именем. -
Возвращает массив, содержащий значения всех заголовков
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 |
См. также
© 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