13

我要做的是当用户访问页面 test.html 时,从他以前访问过的页面中删除 cookie,例如 test1.html ,test2.html 等,并设置新的 cookie。

有没有一种更简单的方法可以使用 jquery 一次删除所有以前设置的 cookie(我每次有 100 个页面要一个一个声明)?

除了一个一个删除,然后设置新的,我不知道任何其他方法:

$.cookie('test1', 'test1', { expires: -1, path: '/' });//deleting cookies from test1.html
$.cookie('test2', 'test2', { expires: -1, path: '/' });//deleting cookies from test2.html

$.cookie('test', 'test', { expires: 30, path: '/' });//setting new cookies 

谢谢

4

3 回答 3

21

遵循jquery-cookie规范:

1) 你调用 $.cookie() 应该返回当前页面上的所有 cookie。
2)只需遍历并删除如下:

var cookies = $.cookie();
for(var cookie in cookies) {
   $.removeCookie(cookie);
}

注意:删除 cookie 时,您必须传递与设置 cookie 完全相同的路径、域和安全选项,除非您依赖默认选项。

于 2013-10-19T20:05:59.097 回答
7
var cookies = document.cookie.split(";");
for(var i=0; i < cookies.length; i++) {
    var equals = cookies[i].indexOf("=");
    var name = equals > -1 ? cookies[i].substr(0, equals) : cookies[i];
    document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}

取自问题如何使用 jquery 删除所有 cookie

于 2013-10-19T20:04:42.080 回答
0

请注意,我们不再维护 jquery-cookie 规范,由JS Cookie取代

于 2018-02-28T16:26:14.793 回答