Headers

La interfaz Headers de la Fetch API permite realizar diversas acciones en los Headers de solicitud y respuesta HTTP.Estas acciones incluyen recuperar, establecer, agregar y eliminar. Un objeto Header tiene una lista  asociada que inicialmente está vacía, y consta de cero o más pares de nombre y valor.
Es posible añadir metodos de uso como append() (en-US) (ver ejemplos.) En todos los métodos de esta interfaz, los nombres de los encabezados se relacionan con una secuencia de bytes sensible a mayúsculas y minúsculas.
Por razones de seguridad, algunos headers pueden ser controlados unicamente por el user agent. Estos headers incluyen los nombres prohibidos para headers  y nombres prohibidos de Headers response.

A Headers object also has an associated guard, which takes a value of immutable, request, request-no-cors, response, or none. This affects whether the set() (en-US), delete() (en-US), and append() (en-US) methods will mutate the header. For more information see Guard.

You can retrieve a Headers object via the Request.headers and Response.headers (en-US) properties, and create a new Headers object using the Headers.Headers() (en-US) constructor.

An object implementing Headers can directly be used in a for...of structure, instead of entries() (en-US): for (var p of myHeaders) is equivalent to for (var p of myHeaders.entries()).

Note: you can find more out about the available headers by reading our HTTP headers reference.

Constructor

Headers.Headers() (en-US)
Creates a new Headers object.

Methods

Headers.append() (en-US)
Appends a new value onto an existing header inside a Headers object, or adds the header if it does not already exist.
Headers.delete() (en-US)
Deletes a header from a Headers object.
Headers.entries() (en-US)
Returns an iterator allowing to go through all key/value pairs contained in this object.
Headers.forEach()
Executes a provided function once for each array element.
Headers.get() (en-US)
Returns a ByteString (en-US) sequence of all the values of a header within a Headers object with a given name.
Headers.has() (en-US)
Returns a boolean stating whether a Headers object contains a certain header.
Headers.keys() (en-US)
Returns an iterator allowing you to go through all keys of the key/value pairs contained in this object.
Headers.set() (en-US)
Sets a new value for an existing header inside a Headers object, or adds the header if it does not already exist.
Headers.values() (en-US)
Returns an iterator allowing you to go through all values of the key/value pairs contained in this object.

Note: To be clear, the difference between Headers.set() (en-US) and Headers.append() (en-US) is that if the specified header does already exist and does accept multiple values, Headers.set() (en-US) will overwrite the existing value with the new one, whereas Headers.append() (en-US) will append the new value onto the end of the set of values. See their dedicated pages for example code.

Note: All of the Headers methods will throw a TypeError if you try to pass in a reference to a name that isn't a valid HTTP Header name. The mutation operations will throw a TypeError if the header has an immutable Guard. In any other failure case they fail silently.

Note: When Header values are iterated over, they are automatically sorted in lexicographical order, and values from duplicate header names are combined.

Obsolete methods

Headers.getAll() (en-US)
Used to return an array of all the values of a header within a Headers object with a given name; this method has now been deleted from the spec, and Headers.get() (en-US) now returns all values instead of just one.

Examples

In the following snippet, we create a new header using the Headers() constructor, add a new header to it using append(), then return that header value using get():

var myHeaders = new Headers();

myHeaders.append('Content-Type', 'text/xml');
myHeaders.get('Content-Type') // should return 'text/xml'

The same can be achieved by passing an array of arrays or an object literal to the constructor:

var 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'

Specifications

Specification Status Comment
Fetch
La definición de 'Headers' en esta especificación.
Living Standard  

Browser compatibility

BCD tables only load in the browser

See also