【问题标题】:Cookies saved using document.cookie getting deleted after closing the browser关闭浏览器后使用 document.cookie 保存的 cookie 被删除
【发布时间】:2014-06-15 02:54:52
【问题描述】:

使用通用代码通过javascript在cookie中设置用户名和密码如下-

function submitLogin(){
        var uNameInCookie=checkCookie("username");

        var passInCookie=checkCookie("password");

        if(uNameInCookie!=="" && passInCookie!=""){
            document.loginForm.login.value=uNameInCookie;
            document.loginForm.passwd.value=passInCookie;
            document.loginForm.submit();
        }
        else{
            if(checkInput()){

            document.loginForm.submit();

            }
        }
}
    function checkCookie(property){

    var x= property;
    var prop = getCookie(x);
    return prop;
}

function getCookie(cName){
var name = cName + "=";
var cookiez = document.cookie.split(';');

for ( var i=0;i<cookiez.length;i++){

        var c= cookiez[i].trim();
        if(c.indexOf(name)==0){

                        return c.substring(name.length,c.length);
        }

        }

        return ""
}

function checkInput()
    {

          if (document.loginForm.login.value == "")
          {

              return false;
          }
          else if (document.loginForm.passwd.value == "")
          {

              return false;
          }
          if (document.loginForm.login.value!= "" && document.loginForm.login.value!=null) 
          {
          var usernameValue=document.loginForm.login.value;

          setCookie("username",usernameValue,365);
          }
          if (document.loginForm.passwd.value!= "" && document.loginForm.passwd.value!=null)
          {
          var passwordValue=document.loginForm.passwd.value;

          setCookie("password",passwordValue,365);
          }
          return true;
}  
function setCookie ( cName, cValue, expDays){

        var d = new Date();
        d.setTime(d.getTime() + (expDays*24*60*60*1000));
        var expDate = d.toGMTString();
        alert(expDate);
        document.cookie = cName + "=" + cValue + ";" + expDate + ";path=/";

    }
    window.onload=submitLogin();
</script>

只有当我注销时,浏览器才能自动登录详细信息并提交表单。

但是如果我关闭浏览器并点击 url,cookie 中存储的用户名和密码就消失了,表单不会自动登录。

代码有什么问题还是某种浏览器设置。如果需要,我还添加了特定站点以添加 cookie。我们还有什么需要做的吗?

提前致谢。

【问题讨论】:

  • 您是否在匿名浏览器中运行应用程序?

标签: javascript cookies session-cookies setcookie autologin


【解决方案1】:

原因是当您设置 cookie 时,它​​的到期日期未设置,它正在为 Session 范围使用 cookie。更正以下行:

document.cookie = cName + "=" + cValue + "; expires=" + expDate + ";path=/";

【讨论】:

  • 嘿,非常感谢 Deepak,您正确地指出了错误。这是我在 Stack 上发布的第一个问题。并且急切地等待答案。
猜你喜欢
  • 2018-02-25
  • 1970-01-01
  • 2015-06-13
  • 2012-12-02
  • 2015-04-11
  • 1970-01-01
  • 2011-03-07
  • 2019-04-28
  • 1970-01-01
相关资源
最近更新 更多