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

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

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

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

Headers.getSetCookie()

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 Headers.set() y Headers.append() es que si la cabecera especificada ya existe y acepta múltiples valores, Headers.set() sobrescribirá el valor existente con el nuevo, mientras que Headers.append() 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 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