Headers()

The Headers() constructor creates a new Headers object.

Syntax

new Headers()
new Headers(init)

Parameters

init Optional

An object containing any HTTP headers that you want to pre-populate your Headers object with. This can be a simple object literal with String values, an array of name-value pairs, where each pair is a 2-element string array; or an existing Headers object. In the last case, the new Headers object copies its data from the existing Headers object.

Examples

Creating an empty Headers object is simple:

const myHeaders = new Headers(); // Currently empty

You could add a header to this using Headers.append:

myHeaders.append('Content-Type', 'image/jpeg');
myHeaders.get('Content-Type'); // Returns 'image/jpeg'

Or you can add the headers you want as the Headers object is created. In the following snippet we create a new Headers object, adding some headers by passing the constructor an init object as an argument:

const httpHeaders = { 'Content-Type' : 'image/jpeg', 'X-My-Custom-Header' : 'Zeke are cool' };
const myHeaders = new Headers(httpHeaders);

You can now create another Headers object, passing it the first Headers object as its init object:

const secondHeadersObj = new Headers(myHeaders);
secondHeadersObj.get('Content-Type'); // Would return 'image/jpeg' — it inherits it from the first headers object

You can also add the headers you want as the Headers object is created by using a two-dimensional array to add multiple headers with the same values. In the following snippet we create a new Headers object with multiple Set-Cookie headers by passing the constructor an init array as an argument:

const headers = [
  ['Set-Cookie', 'greeting=hello'],
  ['Set-Cookie', 'name=world']
];
const myHeaders = new Headers(headers);

Specifications

Specification
Fetch Standard
# ref-for-dom-headers①

Browser compatibility

BCD tables only load in the browser

See also