设置Cookie的Domain为子域名后,主域名无法访问,该怎么解决?
我在子域名测试.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)
document.cookie = "auth=123; Domain=example.com; Path=/;"这样主域名和子域名都能访问,搞定。