【问题标题】:Deleting a cookie with value NULL删除值为 NULL 的 cookie
【发布时间】:2014-09-23 23:34:58
【问题描述】:

如果存在特定 URL 参数,我正在尝试完全删除设置的 cookie。

我试过了:

function delete_cookie (cookie_name) {
    var cookie_date = new Date ();
    cookie_date.setTime(cookie_date.getTime()-1);
    document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}

delete_cookie('MyCookie');

并且它将cookie值设置为null但cookie本身或至少cookie的名称保留在浏览器中,因此当再次打开相同的URL时,它不会从null更新cookie值到XXX 也没有创​​建具有 URL 值的第二个 cookie。

要重新设置新的 cookie,我必须右键单击 cookie 名称(在 Chrome 中)并选择删除。这样 cookie 名称及其值 null 将被真正删除,否则它会保留为 null 值。

我怎样才能完全删除 cookie 文件,而不只是使用 javascript 将其设置为 null

** 新信息 **

我应该提到,我还有以下函数可以从 URL 参数中获取 cookie,并将其从第一页保存到最后一页(在将 cookie 值添加到另一个 URL 后应该将其删除)。第二个页面会将链接变成一个会话,其中 URL 参数不再可见

这是它的代码:

function URLparam(name) {
return unescape(
    (RegExp(name + '(?:\\[\\d+\\])?=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}

$(document).ready(function () {

if (URLparam("MyParameter") !== null && !get_cookie ("MyCookie")) {
    set_cookie ("MyCookie", URLparam("MyParameter"));
}

有什么想法吗?

【问题讨论】:

  • 那么你运行这段代码后实际 cookie的过期时间是多少?
  • @zerkms 我敢打赌它还在未来,它不会删除 cookie。我刚刚发布的链接看起来只要您设置过去的过期时间,cookie就会被删除。听起来对吗?我觉得这是该链接的副本
  • @Ian 不仅如此。另一个猜测是它是为另一个域/路径设置的。但看起来确实是重复的。
  • @Ian 到期日期保持为“会话”并且不会更改

标签: javascript cookies erase


【解决方案1】:

删除 cookie 的最简单方法如下:

function delete_cookie( name ) {
    document.cookie = name + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}

更新:必须添加路径才能使其工作。

Here's a Plunk showing it working. Plunk 中的顶部按钮使用库来设置/查看/删除 null cookie。使用底部的按钮使用老派方法(上图)删除,然后使用库显示按钮验证它已消失。

【讨论】:

  • 我试过了,但它不会删除它。到期日期保持为“会话”。在哪里可以检查路径是否与我正在运行代码的页面匹配,如果路径不同,代码的外观如何?
  • @adrian.m123 您需要包含路径。对于那个很抱歉。查看修改后的答案,并显示它的实际效果。
  • 我已经做到了,它确实将路径设置为/,域也匹配,但它不会删除cookie,它只会将其设置为NULL。 Myabe 我应该提一下,我还有以下函数来抓取 cookie 并将其从第一页保存到最后一页。第二页会将链接变成会话。
  • 我在问题中添加了更多信息
  • @adrian.m123 我真的不明白您的更新与该问题有何关系。如果您的应用程序流程中有一些东西在 cookie 被删除后重新创建,那么我可能无法帮助您。我已经向您展示了如何删除 cookie - 即使它设置为 null。 Plunk 让您亲眼看到这一点。
猜你喜欢
  • 2012-11-06
  • 1970-01-01
  • 2010-11-18
  • 2016-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多