cookie基本用法
后端设置响应头set-cookie
set-cookie mykey=12; Expires=截至MGT时间; Max-age=180; Domain=域名; Path=/; SameSite=Lax; Secure; http-only
name=value:必须项,键值对(不能有分号、逗号、空格,特殊字符要编码)Expires/Max-Age(单位秒):过期时间Path:哪些目录路径能带此 cookieDomain:哪些域名能带此 cookieSecure:仅 https 下发送SameSite:防 CSRF(Lax/Strict/None)读取所有 Cookie
console.log(document.cookie); // "username=zhangsan; token=abc123"
封装:根据 key 获取单个 cookie
function getCookie(key) {
const arr = document.cookie.split("; ");
for (let item of arr) {
const [k, v] = item.split("=");
if (k === key) return decodeURIComponent(v);
}
return null;
}
// 使用
console.log(getCookie("username"));
删除 Cookie:设置
Max-Age=0 或过期时间为过去function delCookie(key) {
// Path 必须和创建时保持一致,否则删不掉
document.cookie = `${key}=; Max-Age=0; Path=/`;
}
delCookie("username");
不写 Expires / Max-Age,浏览器关闭立刻销毁。
Path=/admin:只有 /admin、/admin/list 能携带 cookiePath=/:全站任意页面可用(最常用)HttpOnly:前端 js内存不可以crud,但是能手动crud,后端可以随时设置取消标记
浙公网安备 33010602011771号