我有一个在域 B 上运行的 PHP 脚本,当调用它时会生成一些 JS。
我的想法是,在给定的 html 页面中,我可以拥有:
<script src="http://b.domain/myscript.php"></script>
所以当页面加载时,会调用脚本并生成 JS 并在本地页面上运行。
问题是 myscript.php 依赖于 B 的域 cookie。如果我输入 http://b.domain/myscript.php进入我的地址栏,脚本工作正常,我在浏览器窗口中看到 JS 文本。
但是当我在不同的网络服务器上运行的网页中包含上面引用的行时,称之为 A,它不起作用。 JS 仍会生成,但不正确,因为没有任何 cookie 可用于脚本。
所以,总之,直接访问脚本,cookie可用,一切正常。 通过来自另一个域服务的页面的调用来访问脚本,它没有访问 cookie 的权限。
我不明白为什么在调用 B 域上运行的脚本时,浏览器似乎没有发送 B 的 cookie?
最佳答案
这是一项安全功能。 Cookie 信息永远不会提供给设置 cookie 的域以外的域。请参阅:http://en.wikipedia.org/wiki/Cross-site_scripting获取更多信息。
关于javascript - 奇怪的 Javascript/跨站点 cookie 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1172045/