当前位置:首页 > JavaScript

js实现cookie

2026-01-30 13:18:05JavaScript

设置Cookie

在JavaScript中,可以通过document.cookie属性设置Cookie。设置时需要指定键值对以及可选的属性如过期时间、路径、域名等。

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/";

读取Cookie

读取Cookie时,document.cookie会返回当前域下的所有Cookie字符串,需要通过字符串处理提取特定值。

js实现cookie

function getCookie(name) {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length === 2) return parts.pop().split(';').shift();
}
console.log(getCookie("username")); // 输出 "John Doe"

删除Cookie

删除Cookie可以通过设置其过期时间为过去的时间实现。

js实现cookie

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

设置Cookie属性

Cookie支持以下常用属性:

  • expires:设置过期时间(UTC格式)。
  • max-age:设置存活时间(秒数)。
  • path:指定Cookie的有效路径。
  • domain:指定Cookie的有效域名。
  • secure:仅通过HTTPS传输。
  • samesite:限制跨站请求携带Cookie。
document.cookie = "token=abc123; max-age=3600; path=/; secure; samesite=strict";

封装Cookie操作

封装常用的Cookie操作方法可以提高代码复用性。

const cookieUtil = {
  set(name, value, options = {}) {
    let cookie = `${name}=${value}`;
    if (options.expires) cookie += `; expires=${options.expires.toUTCString()}`;
    if (options.maxAge) cookie += `; max-age=${options.maxAge}`;
    if (options.path) cookie += `; path=${options.path}`;
    if (options.secure) cookie += `; secure`;
    document.cookie = cookie;
  },
  get(name) {
    const value = `; ${document.cookie}`;
    const parts = value.split(`; ${name}=`);
    return parts.length === 2 ? parts.pop().split(';').shift() : null;
  },
  delete(name, path = '/') {
    document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${path}`;
  }
};

注意事项

  • Cookie有大小限制(通常为4KB),超出部分可能被截断。
  • 每个域名下的Cookie数量有限制(通常为20-50个)。
  • 敏感信息不建议存储在Cookie中,避免安全风险。
  • 现代浏览器支持HttpOnly属性(仅服务器端可读写),JavaScript无法操作。

标签: jscookie
分享给朋友:

相关文章

js实现轮播

js实现轮播

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

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整…