2009-07-23 119 views
3

我有一個運行在域B上的PHP腳本,當被調用時會生成一些JS。奇怪的Javascript /跨站點Cookie問題

的想法是,在一個給定的html頁面,我可以有:

<script src="http://b.domain/myscript.php"></script> 

所以在頁面加載時,該腳本調用,JS生成和本地網頁上運行。

問題是,myscript.php依賴於B的域cookie。如果我在地址欄中鍵入http://b.domain/myscript.php,腳本工作正常,並且我在瀏覽器窗口中看到JS文本。

但是,當我將上面的引用行包含在運行在其他web服務器上的網頁上時,將其稱爲A,它不起作用。 JS仍然生成,但不正確,因爲腳本中沒有任何Cookie可用。

所以,總之,直接訪問腳本,cookies可用,一切都很好。 通過來自另一個域提供的頁面的調用來訪問腳本,並且它無法訪問cookie。

我不明白爲什麼,在調用運行在B域的腳本時,瀏覽器似乎並沒有發送B的cookie?

+0

提供操作系統和瀏覽器版本可能有助於獲得答案。或者在所有瀏覽器中都發生這種情況? – jsight 2009-07-23 14:21:58

+0

瀏覽器是Firefox(最新版本),域A是我的本地機器(WinXP)上的apache,域B是Redhat linux機器上的apache。使用螢火蟲進行快速檢查顯示,B的Cookie不包含在對myscript.php – PaulJWilliams 2009-07-23 14:26:17

回答