CookieStore.set()

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The set() method of the CookieStore interface sets a cookie with the given name and value or options object. (See below.)

Syntax

set(name, value)
set(options)

Parameters

This method requires one of the following:

name

A string with the name of the cookie.

value

A string with the value of the cookie.

options

An object containing:

name

A string with the name of a cookie.

value

A string with the value of the cookie.

expires Optional

A DOMTimeStamp containing the expiration date of the cookie.

domain Optional

A string containing the domain of the cookie.

path Optional

A string containing the path of the cookie.

sameSite Optional

One of the following SameSite values:

"strict"

Cookies will only be sent in a first-party context and not be sent along with requests initiated by third party websites.

"lax"

Cookies are not sent on normal cross-site subrequests (for example to load images or frames into a third party site), but are sent when a user is navigating to the origin site (i.e. when following a link).

"none"

Cookies will be sent in all contexts.

Note: For more information on SameSite cookies see SameSite cookies explained.

Return value

A Promise that resolves with undefined when setting the cookie completes.

Exceptions

TypeError

Thrown if setting the cookie with the given values fails.

SecurityError DOMException

Thrown if the origin does not serialize to a URL.

Examples

The following example sets a cookie by passing an object with name, value, expires, and domain.

const day = 24 * 60 * 60 * 1000;
cookieStore.set({
  name: "cookie1",
  value: "cookie1-value",
  expires: Date.now() + day,
  domain: "example.com"
});

Specifications

Specification
Cookie Store API
# dom-cookiestore-set

Browser compatibility

BCD tables only load in the browser