【发布时间】:2009-07-23 22:24:44
【问题描述】:
我有一个在域 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。
所以,简而言之,直接访问脚本,cookies可用,一切都好。 通过从另一个域提供的页面的调用访问脚本,它无权访问 cookie。
我不明白为什么在调用 B 域上运行的脚本时,浏览器似乎没有发送 B 的 cookie?
【问题讨论】:
-
提供操作系统和浏览器版本可能有助于获得答案。还是在所有浏览器中都会发生这种情况?
-
浏览器是 Firefox(最新版本),域 A 是我本地机器 (WinXP) 上的 apache,域 B 是 Redhat linux 机器上的 apache。对 firebug 的快速检查表明 B 的 cookie 没有包含在对 myscript.php 的调用中
标签: javascript cookies