Headers
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()
(en-US)
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 (en-US)
.
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()
(en-US)
y delete()
(en-US)
mutarán la cabecera. Para obtener más información, consulta append()
(en-US)Guard (en-US)
.
Puedes recuperar un objeto Headers
a través de las propiedades
y Request.headers
, y crear un nuevo objeto Response.headers
(en-US)Headers
usando el constructor
.Headers()
(en-US)
Un objeto que implementa Headers
se puede usar directamente en una estructura
, en lugar de for...of
: entries()
(en-US)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()
(en-US)-
Crea un nuevo objeto
Headers
.
Métodos de instancia
Headers.append()
(en-US)-
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()
(en-US)-
Elimina una cabecera de un objeto
Headers
. Headers.entries()
(en-US)-
Devuelve un
iterator
que permite recorrer todos los pares de clave/valor contenidos en este objeto. Headers.forEach()
(en-US)-
Ejecuta una función proporcionada una vez por cada par de clave/valor en este objeto
Headers
. Headers.get()
(en-US)-
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()
(en-US)-
Devuelve un booleano indicando si un objeto
Headers
contiene cierta cabecera. Headers.keys()
(en-US)-
Devuelve un
iterator
que permite recorrer todas las claves de los pares de clave/valor contenidos en este objeto. Headers.set()
(en-US)-
Establece un nuevo valor para una cabecera existente dentro de un objeto
Headers
, o agrega la cabecera si aún no existe. Headers.values()
(en-US)-
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()
(en-US)
es que si la cabecera especificada ya existe y acepta múltiples valores, Headers.append()
(en-US)
sobrescribirá el valor existente con el nuevo, mientras que Headers.set()
(en-US)
añadirá el nuevo valor al final del conjunto de valores. Consulta sus páginas dedicadas para ver ejemplos de código.Headers.append()
(en-US)
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 (en-US) 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