JavaScript通过document.cookie读写Cookie,其本质是需手动解析拼接的字符串;读取需split分隔并解码value,设置需拼接key=value及expires/path/domain等选项,删除则覆盖过期时间。

JavaScript 通过 document.cookie 接口读写 Cookie,它不是对象而是字符串,操作需手动解析和拼接。核心在于理解其格式、作用域限制及安全特性。
读取 Cookie:手动解析字符串
浏览器只提供一个字符串形式的 document.cookie,所有 Cookie 以分号+空格分隔,每项形如 key=value。没有内置方法直接获取指定键,需自行解析:
- 用
document.cookie.split('; ')拆分为数组 - 遍历每一项,用
.split('=')分离键值,注意对 value 进行decodeURIComponent()解码(因 Cookie 值默认被编码) - 推荐封装成函数,例如:
function getCookie(name) { const cookies = document.cookie.split('; '); for (let c of cookies) { const [k, v] = c.split('='); if (k === name) return decodeURIComponent(v); } return null; }
设置 Cookie:拼接字符串并赋值
向 document.cookie 赋值会添加或更新 Cookie,格式为 key=value; options。关键选项包括:
-
expires或max-age:控制过期时间(expires是 GMT 时间字符串,max-age是秒数) -
path:默认为当前路径,设为/可使 Cookie 在整个域名下有效 -
domain:指定可访问的域名(如.example.com允许子域共享) -
secure:仅在 HTTPS 下发送 -
HttpOnly:无法通过 JS 访问(服务端设置,JS 无法读写) -
SameSite:防范 CSRF,可选Strict、Lax或None
删除 Cookie:覆盖过期时间
Cookie 无法直接删除,只能通过设置已过期的时间使其失效:
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
立即学习“Java免费学习笔记(深入)”;
- 将
expires设为过去的时间(如Thu, 01 Jan 1970 00:00:00 GMT) - 必须保证
path和domain与原 Cookie 一致,否则可能删错或失败 - 示例:
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/;"
注意事项与替代方案
原生 Cookie 操作繁琐且易出错,实际开发中建议:









