关于COOKIE使用过程为NULL

关于COOKIE使用过程中的一个小问题
在程序中要用到COOKIE,
网站website/login/login.aspx
传值userID到 website/web/tab/web.aspx中的FRAMESET下的一个FRAME menu.aspx

cookie={
    setCookie:function(name,value)
    {
    /*
    *---------------setCookie(name,value) -----------------
    *setCookie(name,value)
    * 功能:设置得变量name的值
    * 参数:name,字符串;value,字符串.
    * 实例:setCookie('username','baobao')
    *---------------setCookie(name,value) -----------------
    */
      var Days = 30; //此 cookie 将被保存 30 天
      var exp = new Date();
      exp.setTime(exp.getTime() +Days*24*60*60*1000);
      document.cookie = name +"="+ escape (value) + ";expires=" + exp.toGMTString();
    },
    getCookie:function(name)
    {
    /*
    *---------------getCookie(name) -----------------
    *getCookie(name)
    * 功能:取得变量name的值
    * 参数:name,字符串.
    * 实例:alert(getCookie("baobao"));
    *---------------getCookie(name) -----------------
    */
      var arr =document.cookie.match(new RegExp("(^|)"+name+"=([^;]*)(;|$)"));
      if(arr !=null) return unescape(arr[2]); 
      return null;

    }
}

  

发现怎么SETCOOKIE、GETCOOKIE都为NULL
后来度娘说用到FRAMESET涉及到跨域的问题,这,这,有域可跨吗?
试试吧,在网站IIS加一个HTTP头 P3P(问度娘)
结果依然!!!
我问遍所有的QQ群,没有得到任何的答案。
难道是我的SETCOOKIE和GETCOOKIE有问题?
我在以度娘了好久,没有错。

那,那……
我等了好几天。

其中我用两个网页测试都没有问题(注意是在同一个目录下)
我甚至怀疑是一个是.html,另一个是.aspx的原因
后来我发现我的两个页面不在一个目录下。
是不是这个原因呢?

我赶紧把两个测试页面放在同一个目录下测试,成功。
再放到不同的目录下测试,NULL

原来是这个原因,不同目录下的COOKIE不能共享!!
还是度娘(万能的度娘,我感谢你!)

后来网上也有朋友出来这个问题,
加上一小段就可以了。如下:

 

    setCookie:function(name,value)
    {
    /*
    *---------------setCookie(name,value) -----------------
    *setCookie(name,value)
    * 功能:设置得变量name的值
    * 参数:name,字符串;value,字符串.
    * 实例:setCookie('username','baobao')
    *---------------setCookie(name,value) -----------------
    */
      var Days = 30; //此 cookie 将被保存 30 天
      var exp = new Date();
      exp.setTime(exp.getTime() +Days*24*60*60*1000);
      document.cookie = name +"="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/";
    }

 

posted @ 2016-03-21 17:53  ssqhan  阅读(3818)  评论(0编辑  收藏  举报