当前位置:首页 > JavaScript

js 实现保存cookie

2026-02-02 13:26:06JavaScript

保存 Cookie 的方法

在 JavaScript 中,可以通过 document.cookie 属性来保存 Cookie。以下是具体实现方式:

设置 Cookie

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";
  • username=John Doe:键值对,表示 Cookie 的名称和值。
  • expires:可选,设置 Cookie 的过期时间(UTC 格式)。
  • path:可选,指定 Cookie 的有效路径,默认为当前路径。

设置带有 Max-Age 的 Cookie

document.cookie = "theme=dark; max-age=3600; path=/";
  • max-age:以秒为单位设置 Cookie 的有效期(例如 3600 秒 = 1 小时)。

设置 Secure 和 HttpOnly Cookie

document.cookie = "sessionId=abc123; secure; httponly";
  • secure:仅通过 HTTPS 传输 Cookie。
  • httponly:禁止 JavaScript 访问 Cookie(增强安全性)。

读取 Cookie

通过 document.cookie 可以读取当前域下的所有 Cookie:

const allCookies = document.cookie;
console.log(allCookies); // 输出格式如 "username=John Doe; theme=dark"

删除 Cookie

通过将过期时间设置为过去的时间来删除 Cookie:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

封装 Cookie 操作函数

以下是一个封装了 Cookie 操作的实用函数:

js 实现保存cookie

function setCookie(name, value, days = 30, path = "/") {
  const expires = new Date();
  expires.setTime(expires.getTime() + days * 24 * 60 * 60 * 1000);
  document.cookie = `${name}=${encodeURIComponent(value)}; expires=${expires.toUTCString()}; path=${path}`;
}

function getCookie(name) {
  const cookies = document.cookie.split(";");
  for (const cookie of cookies) {
    const [cookieName, cookieValue] = cookie.trim().split("=");
    if (cookieName === name) return decodeURIComponent(cookieValue);
  }
  return null;
}

function deleteCookie(name, path = "/") {
  document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${path}`;
}

注意事项

  • Cookie 有大小限制(通常为 4KB),不适合存储大量数据。
  • 敏感信息不应直接存储在 Cookie 中,建议使用加密或服务端 Session。
  • 跨域 Cookie 需设置 domain 属性,例如 .example.com

标签: jscookie
分享给朋友:

相关文章

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…