什么时候javaScript会话到期?在会话结束时删除cookie

时间:2016-02-20 20:53:31

标签: javascript session cookies expired-cookies

我想在用户关闭其标签/浏览器后删除名为“username”的cookie。我使用以下代码来检测用户是否关闭以及cookie应该被删除。但cookie仍然存在。为什么?

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

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

1 个答案:

答案 0 :(得分: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或使用kill信号关闭,所以只能处理并依赖cookie过期时间。