Я хочу використовувати 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 з декількох сторінок у різних каталогах, і, отже, шляхи за замовчуванням були різними (це не було описано в оригінальному питанні). Рішення було виявлено в обговоренні нижче, що пояснює, чому цю відповідь прийняли - незважаючи на те, що вона не була правильною.
Для деяких версій файлів cookie jQ вищенаведене рішення встановить для файлу cookie значення null. Таким чином не видаляючи cookie. Натомість використовуйте код, як запропоновано нижче.
$.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 має цей ключ «ім’я» з параметром налаштування сервера (шлях = «/»; домен = «mydomain.com»), а ключ - «ім’я» без опції.
Спробуйте це
$.cookie('_cookieName', null, { path: '/' });
{Path: '/'} виконує роботу за вас
Працював у мене лише тоді, коли path
було встановлено, тобто:
$.cookie('name', null, {path:'/'})
Те, що ви робите, є правильним, проблема в іншому, наприклад, кукі знову встановлюється якось на оновлення.