使用jquery删除Cookie无法正常工作

时间:2013-08-28 11:06:09

标签: javascript jquery

我的JS文件中有两个cookie,我想删除它们。

我已尝试过以下代码,但无效

 $.removeCookie('filter', { path: '/Home/' });
 $.removeCookie('Pfilter', { path: '/Home/' });

我也尝试过以下的null cookie,但这也无效。

感谢您的帮助

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

6 个答案:

答案 0 :(得分:45)

可能取决于您的Cookie使用的路径。如果您转到chrome开发人员工具并检查Resources>下的路径列。饼干>路径。

enter image description here

您可能会使用通用/代替/Home/。试试下面的代码。

要使用jQuery删除cookie,请将值设置为null:

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

答案 1 :(得分:6)

你尝试过吗? $ .cookie(“name”,null);

$.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'});