我在模板上做了个登录、自动登陆和退出的js功能代码,每当用户登录就会把登录名称和密码写入cookie里面,但是用户点退出,给cookie重新设置了过期时间(比当前时间要早的时间),但是我刷新页面后自动登陆还是取到cookie里面的值,进行登录!!??代码如下//自动登陆
    function AutoLogin() {
    var getLoginInfo=getCookie("loginInfo");
     if(getLoginInfo!=null){
       var loginInfo=getLoginInfo.split("&*&");
       var sendData="userName="+loginInfo[0]+"&userPwd="+loginInfo[1];
       var backMethod="UserLogin";
       SendData(backMethod,sendData);//向后台发送登录信息
     }
    }
   //退出登陆
    function delCookie(name) {
     var exp = new Date(); //当前时间 
     exp.setTime(exp.getTime() - 1000);
     var cval = getCookie(name);
     if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
     SendData("Logout", "");//向后台注销登录信息
 }
    //保存用户登陆信息
    function SetCookie(name,value){ 
      var Days = 30;
      var exp = new Date();   
      exp.setTime(exp.getTime() + Days*24*60*60*1000); //换成毫秒 
      document.cookie = name+ "="+escape(value);// + ";expires=" + exp.toGMTString(); 
   }
    //获取cookie登陆信息
    function getCookie(name){
     var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); 
      if(arr != null) 
        return unescape(arr[2]); 
        return null; 
    }

解决方案 »

  1.   

    你退出的代码呢?怎么写的是不是键名称写错了或者其他js代码有问题导致未执行到删除cookie的js代码块
      

  2.   

    你写的SetCookie里面设置cookie的时候,把domain加上。
      

  3.   

    我把代码全都帖出 , 我的天啊,搞了一天 .不行的啊.每次退出后刷新都取得getCookie都取到值的,我每个方法都打过断点调试了,在逻辑上没错误的啊!!??
     //登陆请求处理
        function Login() {
         var userName=document.getElementById("txtLoginName");
         var userPwd=document.getElementById("txtLoginPass");
          if(userName.value==""){
            alert("用户名不能为空!");
            return false;
          }
          if(userPwd.value==""){
          alert("请输入密码!");
           return false;
          }
          var sendData="userName="+userName.value+"&userPwd="+userPwd.value;
          var backMethod = "UserLogin";
          SetCookie("loginInfo",userName.value+"&*&"+userPwd.value);
          SendData(backMethod,sendData);
        }
        //登陆结果回调
        function UserLogin(data){
         var lognInfo=data.split("&*&");
         if(lognInfo.length==2){
            document.getElementById("WelcomeName").innerHTML=lognInfo[0];
            document.getElementById("LoginDiv").style.display="none";
            document.getElementById("LoginMessage").style.display="block";
         }else{
            alert(data);
         }
        }
        //退出登陆
        function delCookie(name) {
        debugger
         var exp = new Date(); //当前时间 
         exp.setTime(exp.getTime() - 1000);
         var cval = getCookie(name);
         if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
         SendData("Logout", "");
     }
        //保存用户登陆信息
     function SetCookie(name, value) { 
        debugger
          var Days = 30;
          var exp = new Date();   
          exp.setTime(exp.getTime() + Days*24*60*60*1000); //换成毫秒 
          document.cookie = name+ "="+escape(value);// + ";expires=" + exp.toGMTString(); 
       }
        //获取cookie登陆信息
        function getCookie(name){
         var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); 
          if(arr != null) 
            return unescape(arr[2]); 
            return null; 
        }
        //自动登陆
        function AutoLogin() {
        debugger
        var getLoginInfo=getCookie("loginInfo");
         if(getLoginInfo!=null){
           var loginInfo=getLoginInfo.split("&*&");
           var sendData="userName="+loginInfo[0]+"&userPwd="+loginInfo[1];
           var backMethod="UserLogin";
           SendData(backMethod, sendData);
         } else {
            SendData("IsSessionSavaLoginInfo",""); //防止客户端不支持cookie
         }
     }
       //获取Session用户名和密码
       function IsSessionSavaLoginInfo(data) { 
          if(data!="false"){
              UserLogin(data)//获取登录成功处理信息
          }
        }    $(document).ready(function(){AutoLogin();});
        //样式控制脚本,隐藏层
    function hideShow(){
    document.getElementById("hidDiv").style.display="block";
    }
    function hideHide(){
    document.getElementById("hidDiv").style.display="none";
    }
        //注销后台Session用户登录信息回调
         function Logout(data){
                        if(data=="True"){
                                document.getElementById("WelcomeName").innerHTML="";
                                document.getElementById("txtLoginName").value="";
                                document.getElementById("txtLoginPass").value="";
                                document.getElementById("LoginDiv").style.display="block";
                                document.getElementById("LoginMessage").style.display = "none";
                                if (location.href.indexOf("UserInfo.aspx") > 0) {
                                   //  location.href = "../Index.aspx";
                                 }
                        }else{
                            alert("服务失败!");
                        }
                    }
      

  4.   


    这啊:
    //退出登陆
        function delCookie(name) {
         var exp = new Date(); //当前时间 
         exp.setTime(exp.getTime() - 1000);
         var cval = getCookie(name);
         if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
         SendData("Logout", "");//向后台注销登录信息
     }
      

  5.   

    不是这个函数,这个函数我看到了,我说的是你怎么调用delCookie这个函数的代码
      

  6.   


    问题解决了要这样写的:
     //退出登陆
        function delCookie(name) {
         var exp = new Date(); //当前时间 
         exp.setTime(exp.getTime() - 1000);
         var cval = getCookie(name);
         if (cval != null) document.cookie = name + "=;path=/;expires=" + exp.toGMTString(); ;
         SendData("Logout", "");
     }
        //保存用户登陆信息
     function SetCookie(name, value) { 
          var Days = 30;
          var exp = new Date();   
          exp.setTime(exp.getTime() + Days*24*60*60*1000); //换成毫秒
          document.cookie = name + "=" + escape(value) + ";path=/"; // + ";expires=" + exp.toGMTString(); 
       }
    原因是避免生成多个同名的cookie  感谢你们 结贴了