【问题标题】:JavaScript Cookies are not being set未设置 JavaScript Cookie
【发布时间】:2011-11-12 01:10:56
【问题描述】:

我关注了一些相关的线程,还关注了http://www.quirksmode.org/js/cookies.html 上的教程,但我无法设置我的 cookie。

<script type="text/javascript">
function setcookie(name, value, days)
{
    if (days)
    {
        var date = new Date();
        date.setTime(date.getTime()+days*24*60*60*1000));
        var expires = "; expires="date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="value+expires+;path=/";
}
</script>

然后在我的标签中我有:

<body>
<script type="text/javascript">
    setcookie("testcookie", "test", 1);
</script>
</body>

任何想法我哪里出错了?我使用 FF 启用了 cookie,我可以看到 Youtube 等网站实时创建 cookie,但这个根本不会设置。

【问题讨论】:

    标签: javascript cookies


    【解决方案1】:

    脚本包含几个错误。这是修正后的版本(经过测试):

    function setcookie(name, value, days)
    {
      if (days)
      {
        var date = new Date();
        date.setTime(date.getTime()+days*24*60*60*1000); // ) removed
        var expires = "; expires=" + date.toGMTString(); // + added
      }
      else
        var expires = "";
      document.cookie = name+"=" + value+expires + ";path=/"; // + and " added
    }
    

    【讨论】:

      【解决方案2】:

      您在这一行缺少一个 + 号和一个引号:

      document.cookie = name+"="value+expires+;path=/";
      

      应该是:

      document.cookie = name + "=" + value + expires + ";path=/";
      

      我建议您查看浏览器的错误控制台或 javascript 调试器的控制台以查看 javascript 错误。

      【讨论】:

      • 还是没有变化,我一直有报价过期,但是在这里打出来的时候错过了。我在值之前添加了 + 并进行了测试,但仍未设置 cookie。
      • 还有两行有错误,看我的回答。
      • @SethHall - 如果您不打算在浏览器的错误控制台中查看您的 javascript 错误在哪里,那么您不妨蒙着眼睛开始打字。这应该是您在代码未执行时首先查看的地方。有关您的其他一些错误,请参阅 Yogu 的答案,但下次您自己查看错误控制台以查看您自己的错误。
      猜你喜欢
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      相关资源
      最近更新 更多