设置Cookie的Domain为子域名后,主域名无法访问,该怎么解决?

端木向景 阅读 78

我在子域名测试.example.com设置了一个Cookie,代码这样写的:document.cookie = "auth=123; Domain=test.example.com; Path=/;",但发现主域名example.com根本访问不到这个Cookie,这是为什么?

我试过把Domain改成example.com,结果在子域名里读取时反而显示undefined。文档说Domain应该设置为包含当前域名的父域名,但具体怎么配置才能让主域名和子域名都能访问同一个Cookie呢?

[[ANSWER]]

Cookie的Domain作用域遵循子域继承规则,但需要显式指定允许访问的域范围。当你设置Domain=test.example.com时,只有test.example.com及其子域能访问这个Cookie,example.com主域无法直接访问。

要让主域名和子域名都能访问,应将Domain设置为父域名:

document.cookie = "auth=123; Domain=example.com; Path=/;"

这样test.example.com和www.example.com等子域都能共享该Cookie。

注意:主域名example.com在不带www时需要特殊处理,如果服务器配置强制重定向到www,需确保Domain设置为lowest common domain(如example.com)

我来解答 赞 13 收藏
二维码
手机扫码查看
2 条解答
芸菡(打工版)
把Domain设为父域名即可:
document.cookie = "auth=123; Domain=example.com; Path=/;"

这样主域名和子域名都能访问,搞定。
点赞 11
2026-02-03 11:02
 ___诺一
把Cookie的Domain直接设成父域名example.com就行了,这样子域名和主域名都能访问。
document.cookie = "auth=123; Domain=example.com; Path=/;"
如果还是不行,检查下服务器有没有强制重定向到www,有的话得统一Domain设置。最简单的办法就是确保前后端配置一致,别搞得太复杂。
点赞 11
2026-01-30 16:00