Подтвердить что ты не робот

Удалить Cookie с помощью jquery не работает

У меня есть два файла cookie в моем JS файле, и я хочу удалить их.

Я пробовал код ниже, но он не работает

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

Я также попробовал ниже для файлов cookie, но это также не работает.

Спасибо за помощь

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

Ответ 1

Это может зависеть от того, какой путь использует ваш cookie. Если у вас есть инструменты для разработчиков Chrome и проверьте столбец пути в разделе Ресурсы > Куки файлы > Путь.

enter image description here

Возможно, вы используете общий / для своего пути вместо /Home/. Дайте код ниже попробовать.

Чтобы удалить файл cookie с jQuery, установите значение null:

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

Ответ 2

Вы пытались $.cookie( "name", null);

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

Ответ 3

Что для меня работает, это установить cookie в null до его удаления: $.cookie("filter", null); $.removeCookie("filter);

Ответ 4

У меня была такая же проблема с 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, который вы пытаетесь удалить, функция не будет выполнена.

Несколько решений:

Обновите файлы cookie JQuery. Самая последняя версия даже не делает этого проверки здравомыслия.

или добавьте этот документ в готовый документ

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

Ответ 5

Этот простой способ работает нормально:

$.cookie("cookieName", "", { expires: -1 });