我的 JS 文件中有两个 cookie,我想删除它们。
我已经尝试了下面的代码,但它不起作用
$.removeCookie('filter', { path: '/Home/' });
$.removeCookie('Pfilter', { path: '/Home/' });
我也尝试了下面的空 cookie,但这也不起作用。
谢谢您的帮助
$.cookie('filter',null, { path: '/Home/' });
我的 JS 文件中有两个 cookie,我想删除它们。
我已经尝试了下面的代码,但它不起作用
$.removeCookie('filter', { path: '/Home/' });
$.removeCookie('Pfilter', { path: '/Home/' });
我也尝试了下面的空 cookie,但这也不起作用。
谢谢您的帮助
$.cookie('filter',null, { path: '/Home/' });
这可能取决于您的 cookie 使用的路径。如果您转到 chrome 开发人员工具并检查资源 > Cookies > 路径下的路径列。
您可能正在/
为您的路径使用泛型而不是/Home/
. 试试下面的代码。
要使用 jQuery 删除 cookie,请将值设置为 null:
$.removeCookie('filter', { path: '/' });
你试过 $.cookie("name", null);
$.removeCookie('filter', { path: '/' });
对我有用的是在删除之前将 cookie 设置为 null:
$.cookie("filter", null);
$.removeCookie("filter);
我在使用 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 });
如果您在创建 cookie 时使用域参数,这将起作用
$.removeCookie('cookie', { path: '/' , domain : 'yourdomain.com'});
这种简单的方法可以正常工作:
$.cookie("cookieName", "", { expires: -1 });