Javascript获取Cookie问题

Javascript获取Cookie问题,javascript,cookies,cross-domain,Javascript,Cookies,Cross Domain,我在为域和该域的子域设置cookie时遇到困难。虽然我不能透露域名,但我可以将其命名为“domain.com”,并提供代码 我正在努力实现以下目标:访问者访问domain.com并设置了某些cookie。当他到达subdomain.domain.com上的某个页面时,必须读取这些cookies 如果用户直接在子域页面上登录,cookie设置正确,一切正常,但如果用户登录主域页面,则不会设置cookie。你能帮我吗 我必须再次重申,当子域设置cookie,但主域访问没有设置cookie时(是的,脚

我在为域和该域的子域设置cookie时遇到困难。虽然我不能透露域名,但我可以将其命名为“domain.com”,并提供代码

我正在努力实现以下目标:访问者访问domain.com并设置了某些cookie。当他到达subdomain.domain.com上的某个页面时,必须读取这些cookies

如果用户直接在子域页面上登录,cookie设置正确,一切正常,但如果用户登录主域页面,则不会设置cookie。你能帮我吗

我必须再次重申,当子域设置cookie,但主域访问没有设置cookie时(是的,脚本也在主域页面中),以下代码可以工作。我用firebug和firecookie进行了测试

这是我设置cookies的代码:

function setCookie(c_name,value) {
    var now = new Date();
    var time = now.getTime();
    time += 3600 * 1000;
    now.setTime(time);
    var c_value=escape(value);
    document.cookie=c_name + "=" + c_value + '; path=/;domain=.domain.com';
}
这是我获取cookie值的代码:

function getCookie(c_name) {
    var i,x,y,ARRcookies=document.cookie.split(";");
    for (i=0;i<ARRcookies.length;i++) {
        x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
        y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
        x=x.replace(/^\s+|\s+$/g,"");
        if (x==c_name) {
            return unescape(y);
        }
    }
}
函数getCookie(c_名称){ 变量i,x,y,ARRcookies=document.cookie.split(“;”);
对于(i=0;i您的顶级用户使用子域吗?甚至是“www”

如果不是,我想(老实说,这是一个猜测),问题可能是您指定cookie在所有子域中有效,但在顶级域中无效。请尝试去掉前面的“点”

例如,如果您的用户正在点击“”,那么我认为不会返回为“.domain.com”设置的cookie。另一方面,如果他们点击“www.domain.com”,那么“www”只是另一个子域,所有这些都应该可以工作


有意义吗?

我犯了一个新手级的错误。设置cookie函数在过程的早期被调用,根本没有设置任何cookie


谢谢Jim Davis,你的坚持让我更仔细地查看了我的代码。

最后的页面将只来自subdomain.domain.com。但问题是,在主domain.com上没有设置cookie。从互联网上的所有文献来看,甚至在stackoverflow上,前面的点似乎是强制性的,以便子域可以读取t上设置的cookie他是顶级域名。我弄错了吗?好吧……主要问题是,你试过删除它吗?据我所知,条目a掩码-如果在当前域名的末尾找到掩码,那么如果不是“坏”的话,它就是“好的”。所以-如果这是正确的-“.domain.com”将匹配“www.domain.com”和“sub.domain.com”,而不是“domain.com”不,因为您的解决方案只是部分解决方案。Cookie可能会设置为顶级域,但子域不会读取它们。我说的对吗?除非您尝试,否则您永远不会知道。^)但它们应该-再次,如果我是对的,这只是一个简单的模式匹配:如果当前域的最后一个字符的值与“领域"值,则cookie将被设置,如果不设置,则不会设置。因此,删除句点应允许在顶级域和所有子域中使用cookie。再次-假设我是正确的。并且,再次,一个简单的测试将确认或拒绝该假设。嗯。此问题的答案似乎表明我错了:。但该句点似乎支持我。具体第5.1.2节。好吧,如果这有什么不同的话,你在这方面远远不是一个人