【问题标题】:Javascript cookies. path is not setJavascript cookie。路径未设置
【发布时间】:2012-03-03 19:23:01
【问题描述】:

我写了下面的函数来设置一个cookie。这里$.$domain保存了域名。

 function $cookie(name,value,lifeTime,path,domain,secure){//lifetime in hours
        if(typeof name == 'undefined' ||  name == '' ){

            alert('ERROR !!!\n Name of the cookie is not passed \n');
            return false;
        }

        if(typeof value == 'undefined'){

            alert('ERROR !!!\n Value of the cookie '+name+' is not passed \n');
            return false;
        }
        var c_ = name +'='+escape(value)+';';

            if(typeof lifeTime != 'undefined'&&lifeTime != ''){
               var life = new Date();
               lifeTime<1&&lifeTime>0life.setMinutes(life.getMinutes()+lifeTime*60):life.setHours(life.getHours()+lifeTime);
               life = life.toUTCString();
               c_+='expires='+life+";";
        }
        else lifeTime = 'Unspecified';

        if(typeof domain != 'undefined' &&  domain != '' )
               c_+= 'domain='+domain+';';
        else 
            domain = $.$domain;
        if(secure == 1 )
           c_ += 'secure=secure;';//secure 
        else 
                        secure = 0;
        if(typeof path != 'undefined' && path != '')
             c_ += 'path='+path+';';
        else 
                       path = '/';
        document.cookie = c_;
        this.$name = name;
        this.$value = value;
        this.$life = lifeTime;
        this.$domain = domain;
        this.$secure= secure;
        this.$path = path;
        if(!$.$COOKIE)
          $.$COOKIE = {};
        if(lifeTime<0)
        {   
            var t;
            if(t = $.$COOKIE[name])
            {
                delete t.$name;
                delete t.$value;
                delete t.$life;
                delete t.$domain;
                delete t.$secure;
                delete t.$path;
                delete $.$COOKIE[name];
            }
        }
        else
        $.$COOKIE[name] = this;

        return this;
    }
           var a = new $cookie('a2',6,1,'./scripts','');

$.$COOKIE 保存了域设置的所有 cookie。 脚本是我根目录中的一个目录.. 创建a后,我在谷歌浏览器中查看了cookie,但是路径没有设置。它设置到我的/目录。为什么会这样

【问题讨论】:

    标签: javascript cookies path


    【解决方案1】:

    好像

     if(typeof domain != 'undefined' &&  domain != '' )
            c_+= 'domain='+domain+';';
            else 
            domain = $.$domain;
    

    应该是

     if(typeof domain != 'undefined' &&  domain != '' )
            c_+= 'domain='+domain+';';
            else 
            c_+= 'domain='+$.$domain+';';
    

    【讨论】:

    • :如果没有在 document.cookie 中指定域,域将是设置 cookie 的页面的域?对吗?这就是我没有将它添加到 document.cookie 的原因。仅当用户指定域时才会添加它
    • 我知道 $.$domain 是全局的,并且您想将该值用于域。
    猜你喜欢
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2021-10-31
    相关资源
    最近更新 更多