我想在用户关闭其标签/浏览器后删除名为“username”的cookie。我使用以下代码来检测用户是否关闭以及cookie应该被删除。但cookie仍然存在。为什么?
在浏览器控制台资源中,它将cookie到期字段显示为“会话”。会话什么时候结束?
// delete cookies when user closes browser/tab
$(window).unload(function() {
$.removeCookie('username', { path: '/' });
});
答案 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过期时间。