• 关于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=/";
        }

     

  • 相关阅读:
    常见Dos命令
    常用快捷键小技巧
    springboot集成JPA返回Json报错 com.fasterxml.jackson.data
    docker安装mysql 8.0.20 版本 超详细教程
    8.24 Java自学
    8.23 Java自学
    8.22 Java自学
    8.21 Java自学
    8.20 Java自学
    8.19 Java自学
  • 原文地址:https://www.cnblogs.com/ssqhan/p/5302931.html
Copyright © 2020-2023  润新知