Javascript 使用Jquery(ajax)调用子域脚本时,我没有看到会话变量

Javascript 使用Jquery(ajax)调用子域脚本时,我没有看到会话变量,javascript,jquery,ajax,cookies,subdomain,Javascript,Jquery,Ajax,Cookies,Subdomain,我有个问题。我希望你能帮我解决这个问题 我正在使用长轮询创建聊天。为了保持主域ajax请求(发送消息)不受影响(未排队),我必须将我的长轮询脚本放入子域。 所以我有两个“域” foo.cz channel.foo.cz 正如我所说,我现在不介意任何相同的原产地政策 header("Access-Control-Allow-Origin: *"); 在剧本的顶端。我也用 ini_set('session.cookie_domain', '.foo.cz'); 在所有脚本中(发送、接收、聊天室)

我有个问题。我希望你能帮我解决这个问题

我正在使用长轮询创建聊天。为了保持主域ajax请求(发送消息)不受影响(未排队),我必须将我的长轮询脚本放入子域。 所以我有两个“域”

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();
我的问题是:

  • 我确实喜欢聊天室
  • Ajax(jquery)请求channel.foo.cz/getNews.php
  • getNews.php返回以下内容:

    数组()数组()

  • 看起来cookies和会话没有设置。但是如果我查看我的FF cookie浏览器,我确实看到聊天室中设置的这些cookie的域是.foo.cz
  • 如果我尝试复制ajax请求uri并将其粘贴到浏览器url中,它会返回我

    数组([username]=>martin)数组([sessiond]=>some1D65a4s6d54asd)

  • 这怎么可能?很抱歉提出了这么长的问题,谢谢你的回答

    您需要查看函数的第三个参数。它设置了具有SID的cookie在其中有效的域名。

    我知道了。 浏览器限制向另一子域发送cookie 所以我使用了iframe,它向我的子域发送请求。然而,当有消失的会话时,出现了一些问题。解决方案php.ini:

    suhosin.session.cryptdocroot=Off
    
    suhosin.cookie.cryptdocroot=Off
    

    我说过有ini_集('session.cookie_domain','.bidmanie.cz');当我查看FF cookie浏览器时,我看到了正确的域。我现在注意到jquery不发送会话ID,所以每次我都会收到新的会话ID!所以它看起来更像是一些Javascript或jQuery错误;但是请求头没有改变(没有指定cookie:header)顺便说一句,你能给我一些联系方式吗,比如Skype?如果你能直接帮我,我很乐意,我们用的是同一种语言(CZ);)不,对不起。我不喜欢提供我的私人联系方式,因为如果你在这样一个公共网站上提问,你得到答案的可能性要大得多。此外,我喜欢自愿回答问题,如果我被迫直接在IM上提问的话,我不会这样做。谢谢你的理解。