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 append() (en-US) (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.

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), delete() (en-US) y append() (en-US) mutarán la cabecera. Para obtener más información, consulta Guard (en-US).

Puedes recuperar un objeto Headers a través de las propiedades Request.headers y Response.headers (en-US), y crear un nuevo objeto Headers usando el constructor Headers() (en-US).

Un objeto que implementa Headers se puede usar directamente en una estructura for...of, en lugar de 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 objeto Headers con un nombre dado.

Headers.getSetCookie() (en-US)

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 Headers.set() (en-US) y Headers.append() (en-US) es que si la cabecera especificada ya existe y acepta múltiples valores, Headers.set() (en-US) sobrescribirá el valor existente con el nuevo, mientras que Headers.append() (en-US) añadirá el nuevo valor al final del conjunto de valores. Consulta sus páginas dedicadas para ver ejemplos de código.

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():

js
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:

js
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

Véase también