CookieStore: phương thức set()

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.

* 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.

Phương thức set() của giao diện CookieStore đặt một cookie với namevalue hoặc đối tượng options đã cho.

Cú pháp

js
set(name, value)
set(options)

Tham số

Phương thức này yêu cầu một trong các giá trị sau:

name Optional

Một chuỗi chứa tên của cookie.

value Optional

Một chuỗi chứa giá trị của cookie.

Hoặc

options Optional

Một đối tượng chứa:

domain Optional

Một chuỗi chứa miền của cookie. Mặc định là null.

expires Optional

Một dấu thời gian, được cho dưới dạng Unix time tính bằng mili giây, chứa ngày hết hạn của cookie. Mặc định là null.

maxAge Optional

Một số biểu diễn số giây còn lại cho đến khi cookie hết hạn. Số không hoặc số âm sẽ làm cookie hết hạn ngay lập tức. Nếu cả expiresmaxAge đều được đặt, lời gọi set() sẽ thất bại với TypeError. Mặc định là null.

name

Một chuỗi chứa tên của cookie.

partitioned Optional

Một giá trị boolean mặc định là false. Nếu đặt thành true, cookie được thiết lập sẽ là cookie phân vùng. Xem Cookies Having Independent Partitioned State (CHIPS) để biết thêm thông tin.

path Optional

Một chuỗi chứa đường dẫn của cookie. Mặc định là /.

sameSite Optional

Một trong các giá trị SameSite sau: "strict", "lax", hoặc "none".

value

Một chuỗi chứa giá trị của cookie.

Note: Mặc dù các giá trị có thể được đặt ở đây và sẽ được dùng nội bộ, một số trình duyệt chỉ trả về các tùy chọn namevalue từ CookieStore.get()CookieStore.getAll().

Giá trị trả về

Một Promise được giải quyết với undefined khi việc đặt cookie hoàn tất.

Ngoại lệ

SecurityError DOMException

Được ném ra nếu origin không thể được tuần tự hóa thành một URL.

TypeError

Được ném ra nếu:

  • Cả thuộc tính expiresmaxAge đều được đặt.
  • Việc đặt cookie với namevalue hoặc options đã cho thất bại theo bất kỳ cách nào khác.

Ví dụ

Ví dụ này đặt một cookie bằng cách truyền namevalue lần lượt là "cookie1" và "cookie1-value". Các thuộc tính khác của cookie được đặt bằng các giá trị mặc định như được định nghĩa trong tham số options.

Đoạn mã đầu tiên chờ cookie được đặt xong: vì thao tác này có thể thất bại, thao tác được thực hiện trong khối try...catch và mọi lỗi sẽ được ghi ra console. Sau đó nó lấy và ghi ra log cookie vừa được đặt.

js
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);
}

Ví dụ này đặt một cookie bằng cách truyền đối tượng options với name, value, expires, và partitioned.

Đoạn mã đầu tiên chờ cookie được đặt xong: vì thao tác này có thể thất bại, thao tác được thực hiện trong khối try...catch và mọi lỗi sẽ được ghi ra console. Sau đó nó lấy và ghi ra log cookie vừa được đặt.

js
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);
}

Thông số kỹ thuật

Thông số kỹ thuật
Cookie Store API
# dom-cookiestore-set

Tương thích trình duyệt