我分别使用了Servlet和js 操作cookie
Servlet没有问题 而且我可以在我的主目录的Cookies文件夹下找到我所写的cookie文件但是使用js写入cookie 我就没有找到cookie文件
而且不管设置不设置过期时间, 当浏览器关闭后 再次打开浏览器 都取不到cookie
所以我想问下js操作cookie的这个问题 这是什么原因啊
怎么和Servlet不一样。。
求解 谢谢

解决方案 »

  1.   

    说明你的JS没有写进COOKIE
    JS代码贴上
      

  2.   

    LS 你好
    我觉的不应该吧 因为当浏览器未关闭时 我是可以拿的到这个cookie的
    这就说明写进去了 但是一关闭就没了
    我费解的是 虽然能拿到 但是为什么cookies文件夹底下找不到对应的cookie文件呢
    我用的jquery-cookie  写进去我感觉是没什么问题的
      

  3.   

    如果这样这个问题就比较诡异了你JS设置的时候是否和servlet设置的时候名字一样?
    删除COOKIE在设置一次?
    别的关于COOKIE你是否有设置。
    楼主,慢慢排除,好运了!
      

  4.   

    囧。。 楼上 我请教你个问题啊
    你用js写入cookie 那么你的cookies文件夹下 会不会出现cookie文件
      

  5.   

    我这边自己写了js尝试了一下,没有用jquery-cookie,是会有cookie文件的
    我猜可能是因为你的浏览器有了什么设置自己清楚了,比如退出时清除上网痕迹啥的
      

  6.   

    to sjkof
    可能是浏览器设置问题  我回家也试试 谢谢
      

  7.   

    function getCookie(sName) {    
    var sRE = "(?:; )?" + sName + "=([^;]*);?";    
    var oRE = new RegExp(sRE);  
    if (oRE.test(document.cookie)) {       
    return decodeURIComponent(RegExp["$1"]);  
    } else {       
    return null;    

    }

    function setCookie(sName, sValue, oExpires, sPath, sDomain, bSecure) { 
    var sCookie = sName + "=" + encodeURIComponent(sValue); 
    if (oExpires) { 
    sCookie += "; expires=" + oExpires.toGMTString(); 

    if (sPath) {    
    sCookie += "; path=" + sPath; 

    if (sDomain) {  
    sCookie += "; domain=" + sDomain; 
    }  
    if (bSecure) {        
    sCookie += "; secure"; 

    document.cookie = sCookie;
     } 我用此方法读写COOKIE,会产生文件
    不知道你网页有头文件没
    如果删除测试一下
      

  8.   

    估计是由于你的JS文件引入代码位置处于<head></head>标签内造成的,
    由于放在head标签内,
    http的一些协议头可能不包含cookie的部分,
    所以这时js保存的cookie其实是在浏览器的内存当中,不会保存到文件中
    当浏览器已关闭后,cookie就是失效了,即便你设置了一个很长的失效日期也没用。而你在servlet中输出的,
    其实就是通过服务器端返回数据,
    在http头中添加了cookie的信息,
    浏览器能正常接收并保存到文件中,
    所以才会出现你上述所描述的问题了。来自这篇文章:
    http://hi.baidu.com/lane727/blog/item/56cd10138b67491eb8127b0e.html