如何使用 jQuery 删除 cookie?

我想用 jQuery 来删除 cookies; 我试过这样做:

$.cookie('name', '', { expires: -1 });

但是当我刷新页面时,cookie 仍然存在:

alert('name:' +$.cookie('name'));

为什么?

238709 次浏览

To delete a cookie with JQuery, set the value to null:

$.cookie("name", null, { path: '/' });

Edit: The final solution was to explicitly specify the path property whenever accessing the cookie, because the OP accesses the cookie from multiple pages in different directories, and thus the default paths were different (this was not described in the original question). The solution was discovered in discussion below, which explains why this answer was accepted - despite not being correct.

For some versions jQ cookie the solution above will set the cookie to string null. Thus not removing the cookie. Use the code as suggested below instead.

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

What you are doing is correct, the problem is somewhere else, e.g. the cookie is being set again somehow on refresh.

it is the problem of misunderstand of cookie. Browsers recognize cookie values for not just keys also compare the options path & domain. So Browsers recognize different value which cookie values that key is 'name' with server setting option(path='/'; domain='mydomain.com') and key is 'name' with no option.

Try this

 $.cookie('_cookieName', null, { path: '/' });

The { path: '/' } do the job for you

You can also delete cookies without using jquery.cookie plugin:

document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';

You can try this:

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

source: https://github.com/carhartl/jquery-cookie#readme

Worked for me only when path was set, i.e.:

$.cookie('name', null, {path:'/'})