Я хочу использовать jQuery для удаления файлов cookie; Я пробовал это:
$.cookie('name', '', { expires: -1 });
Но когда я обновляю страницу, cookie все еще там:
alert('name:' +$.cookie('name'));
Почему?
Я хочу использовать jQuery для удаления файлов cookie; Я пробовал это:
$.cookie('name', '', { expires: -1 });
Но когда я обновляю страницу, cookie все еще там:
alert('name:' +$.cookie('name'));
Почему?
Ответы:
Чтобы удалить cookie с помощью JQuery, установите значение null:
$.cookie("name", null, { path: '/' });
Изменить: окончательное решение заключалось в том, чтобы явно указать path
свойство при доступе к файлу cookie, поскольку OP обращается к файлу cookie с нескольких страниц в разных каталогах, и, следовательно, пути по умолчанию были разными (это не было описано в исходном вопросе). Решение было обнаружено в обсуждении ниже, что объясняет, почему этот ответ был принят, несмотря на то, что он неверен.
Для некоторых версий jQ cookie приведенное выше решение установит для cookie значение null. Таким образом, куки не удаляются. Вместо этого используйте предложенный ниже код.
$.removeCookie('the_cookie', { path: '/' });
if (value === null) { value = '';options.expires = -1;}
то, что входит в функцию обработки, поэтому они должны выполнять то же самое. (параметры есть (name, value, options)
)
path
в параметрах обеих команд, так как по умолчанию это путь к текущей странице. Протестируйте, установив корневой каталог вашего домена во всех местах, где файлы cookie читаются и записываются:$.cookie('name', value, {path:'/'})
$.removeCookie('cookie_name')
делает.
Вы можете попробовать это:
$.removeCookie('the_cookie', { path: '/' });
это проблема неправильного понимания cookie. Браузеры распознают значения файлов cookie не только для ключей, но и сравнивают путь и домен параметров. Таким образом, браузеры распознают разные значения, значения которых для файлов cookie, что ключ - это 'name' с параметром настройки сервера (path = '/'; domain = 'mydomain.com'), а ключ - 'name' без параметра.
Попробуй это
$.cookie('_cookieName', null, { path: '/' });
{Path: '/'} сделает всю работу за вас
Работал у меня только когда path
был установлен, то есть:
$.cookie('name', null, {path:'/'})
То, что вы делаете, правильно, проблема в другом месте, например, файл cookie каким-то образом устанавливается снова при обновлении.