Headers
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.
La interfaz Headers
de la API Fetch te permite realizar varias acciones en las cabeceras de solicitud y respuesta HTTP. Estas acciones incluyen recuperar, establecer, agregar y eliminar cabeceras de la lista de cabeceras de la solicitud.
Un objeto Headers
tiene una lista de cabeceras asociada, que inicialmente está vacía y consta de cero o más pares de nombre y valor. Puedes agregar a esto utilizando métodos como
(ver Ejemplos.) En todos los métodos de esta interfaz, los nombres de las cabeceras se comparan mediante secuencias de bytes sin distinción de mayúsculas y minúsculas.append()
Por razones de seguridad, algunas cabeceras solo pueden ser controlados por el agente de usuario. Estas cabeceras incluyen los nombres de cabeceras prohibidos
y nombres de cabeceras de respuesta prohibidos
.
Un objeto Headers
también tiene un guardián asociado, que toma un valor de immutable
, request
, request-no-cors
, response
o none
. Esto afecta si los métodos
, set()
y delete()
mutarán la cabecera. Para obtener más información, consulta append()
Guard
.
Puedes recuperar un objeto Headers
a través de las propiedades
y Request.headers
, y crear un nuevo objeto Response.headers
Headers
usando el constructor
.Headers()
Un objeto que implementa Headers
se puede usar directamente en una estructura
, en lugar de for...of
: entries()
for (const p of myHeaders)
es equivalente a for (const p of myHeaders.entries())
.
Nota: Puedes obtener más información sobre las cabeceras disponibles leyendo nuestra referencia de cabeceras HTTP.
Nota: Esta característica está disponible en Web Workers.
Constructor
Headers()
-
Crea un nuevo objeto
Headers
.
Métodos de instancia
Headers.append()
-
Añade un nuevo valor a una cabecera existente dentro de un objeto
Headers
, o agrega la cabecera si aún no existe. Headers.delete()
-
Elimina una cabecera de un objeto
Headers
. Headers.entries()
-
Devuelve un
iterator
que permite recorrer todos los pares de clave/valor contenidos en este objeto. Headers.forEach()
-
Ejecuta una función proporcionada una vez por cada par de clave/valor en este objeto
Headers
. Headers.get()
-
Devuelve una secuencia de
String
con todos los valores de una cabecera dentro de un objetoHeaders
con un nombre dado. -
Devuelve un array que contiene los valores de todas las cabeceras
Set-Cookie
asociados con una respuesta. Headers.has()
-
Devuelve un booleano indicando si un objeto
Headers
contiene cierta cabecera. Headers.keys()
-
Devuelve un
iterator
que permite recorrer todas las claves de los pares de clave/valor contenidos en este objeto. Headers.set()
-
Establece un nuevo valor para una cabecera existente dentro de un objeto
Headers
, o agrega la cabecera si aún no existe. Headers.values()
-
Devuelve un
iterator
que permite recorrer todos los valores de los pares de clave/valor contenidos en este objeto.
Nota:
Para ser claro, la diferencia entre
y Headers.set()
es que si la cabecera especificada ya existe y acepta múltiples valores, Headers.append()
sobrescribirá el valor existente con el nuevo, mientras que Headers.set()
añadirá el nuevo valor al final del conjunto de valores. Consulta sus páginas dedicadas para ver ejemplos de código.Headers.append()
Nota:
Todos los métodos de Headers
lanzarán un TypeError
si intentas pasar una referencia a un nombre que no es un nombre de cabecera HTTP válido. Las operaciones de mutación lanzarán un TypeError
si la cabecera tiene un Guard inmutable. En cualquier otro caso de fallo, fallarán silenciosamente.
Nota: Cuando se iteran los valores de las cabeceras, se ordenan automáticamente en orden lexicográfico, y los valores de nombres de cabeceras duplicadas se combinan.
Ejemplos
En el siguiente fragmento, creamos una nueva cabecera utilizando el constructor Headers()
, añadimos una nueva cabecera utilizando append()
, y luego recuperamos ese valor de cabecera utilizando get()
:
const myHeaders = new Headers();
myHeaders.append("Content-Type", "text/xml");
myHeaders.get("Content-Type"); // debería devolver 'text/xml'
Se puede lograr lo mismo pasando un arreglo de arreglos o un objeto literal al constructor:
let myHeaders = new Headers({
"Content-Type": "text/xml",
});
// o, utilizando un arreglo de arreglos:
myHeaders = new Headers([["Content-Type", "text/xml"]]);
myHeaders.get("Content-Type"); // debería devolver 'text/xml'
Especificaciones
Specification |
---|
Fetch Standard # headers-class |
Compatibilidad con navegadores
BCD tables only load in the browser