当前位置:首页 > 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 操作的实用函数:

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

js 实现保存cookie

标签: jscookie
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https:/…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的H…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…