我当前的文档网址是http://127.0.0.1/foo,我需要更改http://127.0.0.1/bar的Cookie值。 document.cookie是空的,因为文档的URL是foo。 目前,我只想读取cookie值。 任何线索?
答案 0 :(得分:19)
当您创建cookie时,如果您将路径设置为'/'而不是'foo',您将能够在域中的任何位置读取它,包括'/ foo','/ bar'等。
答案 1 :(得分:13)
您可以创建<iframe>
指向/bar
内的资源,并将跨框架脚本添加到其中。例如:
<iframe src="/bar/blank.html" id="barframe"></iframe>
var barframe= document.getElementById('barframe');
var bardocument= 'contentDocument' in barframe? barframe.contentDocument : barframe.contentWindow.document; // IE compat
alert(bardocument.cookie);
Cookie path=
是一种方便措施,可以防止意外的Cookie名称冲突。鉴于不同的路径共享JavaScript源,它不是一种有效的安全机制。
答案 2 :(得分:3)
您无法从其他路径访问Cookie - 否则会成为安全漏洞。
我能想到的唯一方法是让/bar
设置一个path=/
的Cookie,以便/
(包括/foo
)中的所有网页都可以访问它。
答案 3 :(得分:3)
正如JJ和grawity所说,你无法从你的页面做到这一点。但是,你有一个解决方法。
我。放置一个指向http://localhost/bar的iframe。在“bar”页面上有一个隐藏元素,用于存储cookie值。 (让这个iframe为1 * 1大小,因此不可见。)
II。在“foo”页面上使用JavaScript来获取cookie值。
类似的方法(有修改)也可用于编写cookie值!
谢谢,
Ramjee。