如何设置和删除 Cookie?
介绍了在 JavaScript 中通过操作 document.cookie 来实现 Cookie 的设置与删除,包括参数配置、示例代码以及跨浏览器兼容性。
设置和删除 Cookie 可以通过客户端 JavaScript 实现,方法主要依赖于 document.cookie
API。
以下是详细的实现方案:
设置 Cookie
设置 Cookie 时,需指定名称、值、过期时间及其他属性:
function setCookie(name, value, daysToExpire = 0) {
const expiryDate = new Date();
expiryDate.setTime(expiryDate.getTime() + daysToExpire * 24 * 60 * 60 * 1000);
const expires = daysToExpire > 0 ? `; expires=${expiryDate.toUTCString()}` : "";
document.cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}${expires}; path=/; secure`; // ; secure 标识仅在 HTTPS 下安全
}
参数:
name
:Cookie 名称。value
:Cookie 值;使用encodeURIComponent
转义敏感字符确保安全。daysToExpire
:过期天数,0 表示关闭浏览器时失效(会话 Cookie),正整数表示永久 Cookie。
示例设置一个名为 “userId”、值 “12345”、5 天后过期、全局路径的 Cookie:setCookie("userId", "12345", 5);
可选扩展属性:
path
/domain
定义访问范围,需与首次设置值一致避免冲突。
删除 Cookie
要删除一个 Cookie,必须创建一个同名但无效的值,设置 expires
为过去时间:
function deleteCookie(name) {
document.cookie = `${encodeURIComponent(name)}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`; // ; path=/ 确保覆盖全局路径
}
示例删除名称为 “userId” 的 Cookie:
deleteCookie("userId");
这些方法跨浏览器兼容且基于标准 DOM 操作,应用于登陆认证、用户偏好保存等场景;删除时值仍在当前页面存在但后续失效。