我的当前文档URL是http://127.0.0.1/foo,我需要更改http://127.0.0.1/bar的cookie值。由于文档的URL是foo,因此document.cookie为空。目前,我只想读取cookie值。有什么提示吗?
我的当前文档URL是http://127.0.0.1/foo,我需要更改http://127.0.0.1/bar的cookie值。由于文档的URL是foo,因此document.cookie为空。目前,我只想读取cookie值。有什么提示吗?
如果将路径设置为'/'而不是'foo',则创建cookie时可以在域中的任何地方读取它,包括'/foo'、'/bar'等。
您可以创建一个指向/bar
内资源的<iframe>
,并进行跨框架脚本编写,例如:
<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来源,它并不是一种有效的安全机制。
你不能从不同的路径访问cookie,否则这将是一个安全漏洞。
我所能想到的唯一方法是让/bar
设置一个cookie,其path=/
,以便所有位于/
(包括/foo
)中的页面都可以访问它。