我的JS文件中有两个cookie,我想删除它们。
我已尝试过以下代码,但无效
$.removeCookie('filter', { path: '/Home/' });
$.removeCookie('Pfilter', { path: '/Home/' });
我也尝试过以下的null cookie,但这也无效。
感谢您的帮助
$.cookie('filter',null, { path: '/Home/' });
答案 0 :(得分:45)
可能取决于您的Cookie使用的路径。如果您转到chrome开发人员工具并检查Resources>下的路径列。饼干>路径。
您可能会使用通用/
代替/Home/
。试试下面的代码。
要使用jQuery删除cookie,请将值设置为null:
$.removeCookie('filter', { path: '/' });
答案 1 :(得分:6)
$.removeCookie('filter', { path: '/' });
答案 2 :(得分:2)
对我来说有用的是在删除cookie之前将其设置为null:
$.cookie("filter", null);
$.removeCookie("filter);
答案 3 :(得分:1)
我遇到了与jquery版本1.7.1和jquery cookie版本1.4.1相同的问题
这让我发疯了,所以我决定深入研究源代码,并弄清楚出了什么问题。
以下是$ .removeCookie
的定义$.removeCookie = function (key, options) {
if ($.cookie(key) === undefined) { // this line is the problem
return false;
}
// Must not alter options, thus extending a fresh object...
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
return !$.cookie(key);
};
正如您所看到的,当函数检查cookie是否存在时,它不会考虑选项对象。因此,如果您所处的路径与您尝试删除的cookie不同,则该功能将失败。
一些解决方案:
升级Jquery Cookie。最新版本甚至没有进行那种健全性检查。
或将此文件添加到您的文档中
$.removeCookie = function (key, options) {
if ($.cookie(key, options) === undefined) { // this line is the fix
return false;
}
// Must not alter options, thus extending a fresh object...
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
return !$.cookie(key);
};
或删除Cookie时执行以下操作:
$.cookie('cookie-name', '', { path: '/my/path', expires:-1 });
答案 4 :(得分:0)
这种简单的方法可以正常工作:
$.cookie("cookieName", "", { expires: -1 });
答案 5 :(得分:0)
如果您在创建Cookie时使用域参数,则可以使用
$.removeCookie('cookie', { path: '/' , domain : 'yourdomain.com'});