zoukankan      html  css  js  c++  java
  • 关于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=/";
        }

     

  • 相关阅读:
    给Windows组件添加图标
    C#文件和文件夹操作
    WinForm TreeView 右键菜单
    VC++ New 操作符
    Ext与Jquery的整合
    PowerDesign报表操作
    SQLServer自动建表存储过程
    Visual Studio 2008简体中文正式版下载地址
    WinForm遍历控件
    发布时用直接用源文件部署
  • 原文地址:https://www.cnblogs.com/ssqhan/p/5302931.html
Copyright © 2011-2022 走看看