我遇到了問題。我希望你能幫我解決它。我用Jquery調用子域腳本時看不到SESSION變量(ajax)
我正在與LONG POLLING創建聊天。爲了保持主域ajax請求(發送消息)不變(未排序),我必須將我的長輪詢腳本放到子域中。 所以,我已經有了2「域」
foo.cz channel.foo.cz
我不介意任何同源策略,現在我把
header("Access-Control-Allow-Origin: *");
在頂部的腳本。我也使用
ini_set('session.cookie_domain', '.foo.cz');
在所有腳本(發送,接收,聊天室)。
對於調試,我在我的channel.foo.cz/getNews.php得到這個:
print_r($_SESSION);
print_r($_COOKIE);
die();
我的問題是:
- 我做負載聊天室
- 阿賈克斯(jquery)請求channel.foo.cz/getNews.php
getNews.php返回此信息:
array()array()
- 它看起來沒有設置cookie和會話。但!如果我看着我的FF的cookie的瀏覽器,我看到該域這些Cookie在聊天室設置爲.foo.cz
如果我嘗試複製Ajax請求的URI並將其粘貼到瀏覽器的網址,它返回我
陣列([用戶名] =>馬丁)陣列([SESSID] => some1D65a4s6d54asd)
如何可能?對不起,長期的問題,並感謝所有的答案!
我說有ini_set('session.cookie_domain','.bidmanie.cz'); 當我查看FF cookie瀏覽器時,我看到了正確的域。我現在指出,jQuery不會發送會話ID,所以我每次都會收到新會話ID! – genesis 2011-05-22 20:21:31
所以它看起來像一些Javascript或jQuery的bug。 – 2011-05-22 20:38:07
我試過這個:.ajax({timeout:52000,headers:{Cookie:「PHPSESSID =」+ SSID},url:'http://channel.foo.cz/getNews.php?__ ='+ SSID}) ;但請求頭不會改變(沒有cookie:頭指定) – genesis 2011-05-22 21:51:15