Как получить значение домена для куки в Javascript? - PullRequest
34 голосов
/ 02 июня 2010

Используя Javascript, я хотел бы получить значение domain для определенного файла cookie.

Возможно ли это? Если да, то как?

Чтобы уточнить: я не ищу значение файла cookie. Я нахожусь на "subdomain.domain.com", и мне нужно удалить cookie, имя которого известно, но его значение домена является чем-то вроде ".domain.com". Короче говоря: я бы хотел получить значение ".domain.com".

Ответы [ 2 ]

39 голосов
/ 02 июня 2010

Извините, все, что вы получаете, это то, что вы видите в document.cookie. Метаданные cookie, такие как path, domain и expires, не видны для кода сайта (ни для JavaScript, ни для серверной части).

Чтобы прочитать cookie-файл, за которым следит cookie-файл с более конкретным domain или path, единственное, что вы можете сделать, это загрузить страницу, для которой более специфичный cookie-файл выходит за рамки и прочитайте его оттуда.

Если, как вы говорите, вам нужно только удалить cookie, вы можете попытаться удалить cookie на каждом возможном уровне специфичности, например ::

    document.cookie= 'foo=;domain=sub.domain.example.com;expires=Sat, 01-Jan-2000 00:00:00 GMT';
    document.cookie= 'foo=;domain=domain.example.com;expires=Sat, 01-Jan-2000 00:00:00 GMT';
    document.cookie= 'foo=;domain=example.com;expires=Sat, 01-Jan-2000 00:00:00 GMT';

и аналогично переменной path. Вы можете поместить это во вложенный цикл для каждого пути и доменной части, разделив на . для домена и / для пути.

2 голосов
/ 02 июня 2010

Вы можете получить доступ к файлам cookie только с одного домена (включая субдомены). Очевидно, что в противном случае это была бы проблема безопасности.

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