CookieStore: set() method
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Service Workers.
The set()
method of the CookieStore
interface sets a cookie with the given name
and value
or options
object.
Syntax
set(name, value)
set(options)
Parameters
This method requires one of the following:
name
Optional-
A string with the name of the cookie.
value
Optional-
A string with the value of the cookie.
Or
options
Optional-
An object containing:
domain
Optional-
A string containing the domain of the cookie. Defaults to
null
. expires
Optional-
A timestamp, given as Unix time in milliseconds, containing the expiration date of the cookie. Defaults to
null
. name
-
A string with the name of a cookie.
partitioned
Optional-
A boolean value that defaults to
false
. If set totrue
, the set cookie will be a partitioned cookie. See Cookies Having Independent Partitioned State (CHIPS) for more information. path
Optional-
A string containing the path of the cookie. Defaults to
/
. sameSite
Optional-
One of the following
SameSite
values:"strict"
,"lax"
, or"none"
. value
-
A string with the value of the cookie.
Note:
While the values can be set here and will be used internally, some browsers will only return name
and value
options from CookieStore.get()
and CookieStore.getAll()
.
Return value
Exceptions
SecurityError
DOMException
-
Thrown if the origin can not be serialized to a URL.
TypeError
-
Thrown if setting the cookie with the given
name
andvalue
oroptions
fails.
Examples
Setting a cookie with name and value
This example sets a cookie by passing a name
and value
of "cookie1" and "cookie1-value", respectively.
The other properties of the cookie are set with default values, as defined in the options
parameter.
The code first waits for the cookie to be set: as this operation can fail, the operation is performed in a try...catch
block and any errors are logged to the console.
It then gets and logs the cookie that was just set.
async function cookieTest() {
// Set cookie: passing name and value
try {
await cookieStore.set("cookie1", "cookie1-value");
} catch (error) {
console.log(`Error setting cookie1: ${error}`);
}
// Get the cookie and log its values
const cookie = await cookieStore.get("cookie1");
console.log(cookie);
}
Setting a cookie with options
This example sets a cookie by passing an options
object with name
, value
, expires
, and partitioned
.
The code first waits for the cookie to be set: as this operation can fail, the operation is performed in a try...catch
block and any errors are logged to the console.
It then gets and logs the cookie that was just set.
async function cookieTest() {
const day = 24 * 60 * 60 * 1000;
const cookieName = "cookie2";
try {
// Set cookie: passing options
await cookieStore.set({
name: cookieName,
value: `${cookieName}-value`,
expires: Date.now() + day,
partitioned: true,
});
} catch (error) {
log(`Error setting ${cookieName}: ${error}`);
console.log(error);
}
// Log the new cookie
const cookie = await cookieStore.get(cookieName);
console.log(cookie);
}
Specifications
Specification |
---|
Cookie Store API # dom-cookiestore-set |