Как я могу удалить только одну часть cookie, установленную моим доменом (несколько других для других приложений)? - PullRequest
0 голосов
/ 11 июня 2011

document.cookie дает мне что-то вроде:

"cookie_name_1 = 623222.88839338.818181.383; SnapABugHistory = 4 #; optimizelyEndUserID = aaa1111111; my_cookie_name =% 5data% 7B от% 3Arails **

Я только хочу удалить my_cookie_name=%5data%7Bfrom%3Arails и оставить остальные нетронутыми.

Какой лучший способ сделать это из JavaScript?

Ответы [ 3 ]

1 голос
/ 11 июня 2011

Установите его с прошедшей expires датой - возможно, самая простая - это эпоха Unix (просто new Date(0)):

document.cookie = 'my_cookie_name=; expires=' + new Date(0).toUTCString();

Это повлияет только на файл cookie с именем, указанным в началестрока.Чтобы повлиять на остальные 3 куки, вам придется повторить для каждого:

document.cookie = 'cookie_name_1=; expires=' + new Date(0).toUTCString();
document.cookie = 'SnapABugHistory=; expires=' + new Date(0).toUTCString();
//...

Это потому, что геттер и сеттер document.cookie различаются.Пока вы получаете объединенный список всех доступных файлов cookie, вы можете только установить по одному за раз.

См. MDC документы для более подробной информации.

0 голосов
/ 11 июня 2011

Взгляните на сообщение Quirks Mode о файлах cookie .Это даст вам отличное объяснение о том, как использовать куки.

Ближе к концу (раздел Сценарии ) есть три функции, которые могут оказаться полезными, а именно createCookie(name,value,days), readCookie(name) и eraseCookie(name), именно то, что вам нужно.

Конечно, это чистый JavaScript.Если вы используете фреймворк js (например, jQuery), вам лучше использовать встроенные функции фреймворка

0 голосов
/ 11 июня 2011

http://plugins.jquery.com/project/Cookie

Позволяет вам установить / получить куки по имени, используйте его, чтобы установить my_cookie_name в 0 или ""

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...