我在本地的局域网服务器上测试,js写入cookie中一段代码,然后再读出来,但问题出现在:
我在hosts里指一个域名,js就不能读出cookie,但是可以写;
将hosts的指向屏蔽掉,直接用IP访问本地服务器网站,js就能读出来所以,我都是用IP访问局域网服务器调试,之后放到外网服务器上,也出现这个问题了,js无法获取cookie,怎么回事

解决方案 »

  1.   

    手动顶一下,我写入path="/";domain=".域名";  但是不好使呢,为什么IP访问就能读,域名访问就不能读呢
      

  2.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
     <head>
      <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
      <title>cookie处理函数练习(为我所写,非我所想:改善面向对象)</title>
      <script language="JavaScript" type="text/javascript">
      function addCookie(objName,objValue,objHours){//添加cookie
       var str = objName + "=" + escape(objValue);
       if(objHours > 0){//为0时不设定过期时间,浏览器关闭时cookie自动消失
        var date = new Date();
        var ms = objHours*3600*1000;
        date.setTime(date.getTime() + ms);
        str += "; expires=" + date.toGMTString();
       }
       document.cookie = str;
       alert("添加cookie成功");
      }
      
      function getCookie(objName){//获取指定名称的cookie的值
       var arrStr = document.cookie.split("; ");
       for(var i = 0;i < arrStr.length;i ++){
        var temp = arrStr[i].split("=");
        if(temp[0] == objName) return unescape(temp[1]);
       }
      }
      
      function delCookie(name){//为了删除指定名称的cookie,可以将其过期时间设定为一个过去的时间
       var date = new Date();
       date.setTime(date.getTime() - 10000);
       document.cookie = name + "=a; expires=" + date.toGMTString();
      }
      
      function allCookie(){//读取所有保存的cookie字符串
       var str = document.cookie;
       if(str == ""){
        str = "没有保存任何cookie";
       }
       alert(str);
      }
      
      function $(m,
    欢迎光临学网,收藏本篇文章 [1] [2] [3]$False$n){
       return document.forms[m].elements[n].value;
      }
      
      function add_(){
       var cookie_name = $("myform","cookie_name");
       var cookie_value = $("myform","cookie_value");
       var cookie_expireHours = $("myform","cookie_expiresHours");
       addCookie(cookie_name,cookie_value,cookie_expireHours);
      }
      
      function get_(){
       var cookie_name = $("myform","cookie_name");
       var cookie_value = getCookie(cookie_name);
       alert(cookie_value);
      }
      
      function del_(){
       var cookie_name = $("myform","cookie_name");
       delCookie(cookie_name);
       alert("删除成功");
      }
      </script>
      
     </head>
     <body>
      <form name="myform">
       <div><label for="cookie_name">名称</label><input type="text" name="cookie_name" /></div>
       <div><label for="cookie_value">值</lable><input type="text" name="cookie_value" /></div>
       <div><label for="cookie_expireHours">多少个小时过期</lable><input type="text" name="cookie_expiresHours" /></div>
       <div>
        <input type="button" value="添加该cookie" onclick="add_()" />
        <input type="button" value="读取所有cookie" onclick="allCookie()" />
        <input type="button" value="读取该名称cookie" onclick="get_()" />
        <input type="button" value="删除该名称cookie" onclick="del_()" />
       </di欢迎光临学网,收藏本篇文章 [1] [2] [3]v>
      </form>
      <hr />
     </body>
    </html> 
      

  3.   


    你这个我都明白,不用给我程序了,我就想知道,为什么我用IP能获得到cookie,但是换成域名访问就不行了呢
      

  4.   

    我用3楼的那种方法,但是我的页面中的值比较多,添加到cookie中后,我再另一个页面取值,结果就是取不出来,提示undefined,不知道怎么弄