Cookie 在不同的目录中不可用
Cookie not available in different directory
根据 MDN,cookie 设置路径为“/”are available anywhere in the same domain. This is corroborated by several different sources。
但是,我还没有发现是这种情况。我 运行 使用 firefox 对 google.com
上的(不存在的)目录进行了以下测试:
> window.location = 'https://google.com/dir/file.html'
Navigated to https://google.com/dir/file.html
"https://google.com/dir/file.html"
> document.cookie
""
> document.cookie = 'key1=value1,path=/'
"key1=value1,path=/"
> document.cookie
"key1=value1,path=/"
> window.location = '/dir2/file.html'
Navigated to https://google.com/dir2/file.html
"/dir2/file.html"
> document.cookie
""
我是不是误会了什么?我究竟做错了什么?我在 Chrome 上尝试了类似的测试,结果相同。
想通了。我用逗号分隔符设置 path
,而不是分号分隔符。它是在我键入 cookie 时按字面意思写入 cookie,而不是解释路径和域。
写入 cookie 的正确方法应该是 document.cookie = 'key1=value1;path=/'
。
根据 MDN,cookie 设置路径为“/”are available anywhere in the same domain. This is corroborated by several different sources。
但是,我还没有发现是这种情况。我 运行 使用 firefox 对 google.com
上的(不存在的)目录进行了以下测试:
> window.location = 'https://google.com/dir/file.html'
Navigated to https://google.com/dir/file.html
"https://google.com/dir/file.html"
> document.cookie
""
> document.cookie = 'key1=value1,path=/'
"key1=value1,path=/"
> document.cookie
"key1=value1,path=/"
> window.location = '/dir2/file.html'
Navigated to https://google.com/dir2/file.html
"/dir2/file.html"
> document.cookie
""
我是不是误会了什么?我究竟做错了什么?我在 Chrome 上尝试了类似的测试,结果相同。
想通了。我用逗号分隔符设置 path
,而不是分号分隔符。它是在我键入 cookie 时按字面意思写入 cookie,而不是解释路径和域。
写入 cookie 的正确方法应该是 document.cookie = 'key1=value1;path=/'
。