【问题标题】:Make a cookie expire in 30 seconds使 cookie 在 30 秒内过期
【发布时间】:2019-01-07 20:19:39
【问题描述】:

有人可以更新以下代码以使 cookie 在 30 秒内过期。

function setCookie(c_name, value, exdays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
    document.cookie = c_name + "=" + c_value;
}

【问题讨论】:

  • 所以...您已经完成了 w3schools 的复制/粘贴... Quirksmode 对 JavaScript 中的 cookie 有更好的解释:quirksmode.org/js/cookies.html
  • 你想做什么?为什么要这么快过期?
  • @Jason 有时您可能只想在页面之间传递数据而不通过网络发送该信息。在这种情况下,快速过期的 cookie 会做得很好。

标签: javascript cookies


【解决方案1】:
function createCookie(name, value) {
   var date = new Date();
   date.setTime(date.getTime()+(30*1000));
   var expires = "; expires="+date.toGMTString();

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

【讨论】:

  • 为什么我们在 expires 中使用 toGMTString()?有什么具体原因吗?
【解决方案2】:

您可以在设置 cookie 时以秒为单位指定最大年龄:

function setCookie(name, value, maxAgeSeconds) {
    var maxAgeSegment = "; max-age=" + maxAgeSeconds;
    document.cookie = encodeURI(name) + "=" + encodeURI(value) + maxAgeSegment;
}

用法:

setCookie("username", "blaise", 30);

【讨论】:

    猜你喜欢
    • 2011-07-30
    • 2011-11-23
    • 2010-12-22
    • 2014-04-17
    • 2018-08-09
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 2018-04-14
    相关资源
    最近更新 更多