Javascript 为什么Chrome和Safari没有看到某些子域的cookie?
我有一个网站正在生成cookie,例如.com。在Firefox、Chrome 18和Safari中都可以访问它。但是,我无法从webkit派生的浏览器中访问cookie。它在Firefox中工作 当从javascript设置cookie时,我已经使用domain=example.com和.example.com中的一个进行了测试Javascript 为什么Chrome和Safari没有看到某些子域的cookie?,javascript,google-chrome,cookies,safari,Javascript,Google Chrome,Cookies,Safari,我有一个网站正在生成cookie,例如.com。在Firefox、Chrome 18和Safari中都可以访问它。但是,我无法从webkit派生的浏览器中访问cookie。它在Firefox中工作 当从javascript设置cookie时,我已经使用domain=example.com和.example.com中的一个进行了测试 cookie的路径为/并且已设置过期时间 如何指定子域? Chrome希望子域的Cookie以点为前缀 e、 g.domain=.example.com 你可能会发现
cookie的路径为/并且已设置过期时间 如何指定子域? Chrome希望子域的Cookie以点为前缀 e、 g.domain=.example.com 你可能会发现这篇文章很有用: 引用您阅读的同一RFC2109:
* A Set-Cookie from request-host x.foo.com for Domain=.foo.com would
be accepted.
因此subdomain.example.com可以为.example.com设置cookie。到目前为止还不错
The following rules apply to choosing applicable cookie-values from
among all the cookies the user agent has.
Domain Selection
The origin server's fully-qualified host name must domain-match
the Domain attribute of the cookie
那么我们有域名匹配吗
- A是FQDN字符串,格式为NB,其中N是非空名称 字符串,B的形式为.B',B'是FQDN字符串。(因此,x.y.com 域匹配.y.com,但不匹配y.com。) 但是现在example.com不会根据定义匹配domain.example.com。但www.example.com(或域中的任何其他“非空名称”)>>会。这个RFC在理论上被RFC2965淘汰了,它规定了在Set-Cookie2操作中为域强制一个前导点
看一看是的,看这条线索让我觉得Firefox是正确的,Chrome和Safari没有正常工作。正如我所说,第一级子域可以工作,但不是两级。如果cookie被定义为.example.com,我希望www.example.com和something.ww.example.com都能工作。我想我希望有人知道为什么Chrome会出现这种情况,或者是否有解决办法。正如在最初的问题中提到的,尝试了一个前导点。