从不同的路径中检索cookie

时间:2009-06-03 16:59:31

标签: javascript path dns cookies

我当前的文档网址是http://127.0.0.1/foo,我需要更改http://127.0.0.1/bar的Cookie值。 document.cookie是空的,因为文档的URL是foo。 目前,我只想读取cookie值。 任何线索?

4 个答案:

答案 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。