Javascript获取Cookie问题



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

我试图实现以下目标:访问者来到domain.com和某些cookie设置。当他到达subdomain.domain.com上的某个页面时,必须读取这些cookie。

如果用户直接登陆子域页面,cookie设置正确,一切正常,但如果他登陆主域页面,没有设置cookie。你能帮我吗?

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

这是我设置cookie的代码:

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);
        }
    }
}

您的顶级用户是否使用子域名?甚至"www"?

如果不是,我认为(老实说,这是一个猜测)的问题可能是你指定的cookie是有效的,在所有子域,但不是在顶级域。试着去掉前面的"点"。

例如,如果你的用户正在点击"http://domain.com",那么我不认为cookie设置为"。domain.com"将返回。另一方面,如果他们点击"www.domain.com",那么"www"只是另一个子域名,所有这些都应该工作。

有意义吗?

我真是个新手犯的错误。set cookie函数在流程的早期被调用,并且根本没有设置任何cookie。

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

相关内容

  • 没有找到相关文章

最新更新