2026年5月27日 01:09

如何删除一个 Cookie 值?

设置同名 Cookie 的过期时间为过去的时间,浏览器会自动清除它:

javascript
document.cookie = 'key=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/';

三个关键点:1) 必须和原 Cookie 的 pathdomain 一致,否则删不掉;2) 如果不指定 path,默认是当前路径而非 /,可能遗漏;3) 如果原 Cookie 设了 HttpOnly,JS 无法操作。

max-age=0 也能达到同样效果(现代浏览器推荐):

javascript
document.cookie = 'key=; max-age=0; path=/';

追问

不能。HttpOnly 标记就是为了防止 JS 访问,所以 JS 也删不了。只能由服务端在 response 里 Set-Cookie 删除。

HTTPS 下可以。Secure 只限制传输(不随 HTTP 请求发送),不影响 JS 的读写。但 document.cookie 本身也是 JS 层面的操作,和传输无关。

domain 必须匹配。如果 Cookie 设在 .example.com,前端在 sub.example.com 页面上删除时必须指定 domain=.example.com。子域名页面无法删除父域名的 Cookie(浏览器安全策略)。

标签:前端Browser