CookieStore: set() method
Baseline
2025
*
Newly available
Since June 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Want more support for this feature? Tell us why.
* Some parts of this feature may have varying levels of support.
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:
nameOptional-
A string with the name of the cookie.
valueOptional-
A string with the value of the cookie.
Or
optionsOptional-
An object containing:
domainOptional-
A string containing the domain of the cookie. Defaults to
null. expiresOptional-
A timestamp, given as Unix time in milliseconds, containing the expiration date of the cookie. Defaults to
null. maxAgeOptional-
A number representing the number of seconds until the cookie expires. A zero or negative number will expire the cookie immediately. If both
expiresandmaxAgeare set, theset()call fails with aTypeError. Defaults tonull. name-
A string with the name of a cookie.
partitionedOptional-
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. pathOptional-
A string containing the path of the cookie. Defaults to
/. sameSiteOptional-
One of the following
SameSitevalues:"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
A Promise that resolves with undefined when setting the cookie completes.
Exceptions
SecurityErrorDOMException-
Thrown if the origin can not be serialized to a URL.
TypeError-
Thrown if:
- Both the
expiresandmaxAgeproperties are set. - Setting the cookie with the given
nameandvalueoroptionsfails in any other way.
- Both the
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> |