Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delete ALL Cookies with jquery and set new

What I'm trying to do is when user visits page test.html , to delete cookies from pages he previously visited, like test1.html ,test2.html etc. and set new cookie.

Is there an easier way to delete all previously set cookies at once (I have 100s of pages to declare one by one every time) with jquery?

I don't know any other way except to delete one by one and then set new:

$.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 

Thanks

like image 425
yas Avatar asked Oct 19 '13 20:10

yas


2 Answers

Following the jquery-cookie spec:

1) You call $.cookie() which should return all of the cookies on the current page.
2) Just iterate through and remove as below:

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

Note: when deleting a cookie, you must pass the exact same path, domain and secure options that were used to set the cookie, unless you're relying on the default options that is.

like image 146
megawac Avatar answered Sep 20 '22 14:09

megawac


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";
}

Taken from the questions How to delete all cookies with jquery

like image 30
Neeraj Avatar answered Sep 22 '22 14:09

Neeraj