1

一旦用户关闭他们的选项卡/浏览器,我想删除名为“用户名”的 cookie。我正在使用以下代码来检测用户是否关闭并且应该删除 cookie。但是cookie仍然存在。为什么?

在浏览器控制台资源中,它将 cookie 过期字段显示为“会话”。会话何时结束?

// delete cookies when user closes browser/tab
$(window).unload(function() {
   $.removeCookie('username', { path: '/' });
});
4

1 回答 1

1

要创建 cookie,js 是:

$.cookie('username', 'your value');

要删除相同的 cookie,代码是:

$.removeCookie('username', '', { path: '/'});

您错过了第二个参数,即值,因此在这种情况下,您的 cookie 将在会话结束时过期。

我使用的库是:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>

该库不再维护。使用新插件:

<script src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.1.0/js.cookie.min.js"></script>

要创建 cookie:

Cookies.set('username', 'value');

并删除:

Cookies.remove('username');

默认情况下,如果未指定过期日期,则在用户关闭浏览器时删除 Cookie(会话 cookie)。

因为可以使用 alf+f4 或 X 或终止信号关闭浏览器,所以您只能处理和依赖 cookie 过期时间。

于 2016-02-20T21:17:31.883 回答