Как я могу перечислить все куки для текущей страницы с Javascript? - PullRequest
58 голосов
/ 04 августа 2010

Можно ли с помощью Javascript перечислить все файлы cookie, связанные с текущей страницей?То есть, если я не знаю имен файлов cookie, но хочу получить всю информацию, которую они содержат.

Ответы [ 9 ]

72 голосов
/ 04 августа 2010

Вы можете перечислить куки для текущего домена:

function listCookies() {
    var theCookies = document.cookie.split(';');
    var aString = '';
    for (var i = 1 ; i <= theCookies.length; i++) {
        aString += i + ' ' + theCookies[i-1] + "\n";
    }
    return aString;
}

Но вы не можете перечислить куки для других доменов из соображений безопасности

10 голосов
/ 04 августа 2010
var x = document.cookie; 
window.alert(x);

Здесь отображаются все файлы cookie, к которым у текущего сайта есть доступ.Например, если вы создали два файла cookie «username = Frankenstein» и «username = Dracula», на этих двух строках кода будет отображаться «username = Frankenstein; username = Dracula».Однако такая информация, как срок годности, отображаться не будет.

3 голосов
/ 27 ноября 2017

Многие уже упоминали, что document.cookie получает вам все куки (кроме http-only).

Я просто добавлю фрагмент, чтобы идти в ногу со временем.

document.cookie.split(';').reduce((cookies, cookie) => {
  const [ name, value ] = cookie.split('=').map(c => c.trim());
  cookies[name] = value;
  return cookies;
}, {});

Фрагмент вернет объект с именами cookie в качестве ключей и значениями cookie в качестве значений.

2 голосов
/ 04 августа 2010

Нет.

Единственный браузер API, который позволяет вам обрабатывать файлы cookie, - это получение и настройка их с помощью пар ключ-значение.Все браузеры обрабатывают файлы cookie только по доменному имени .

Доступ ко всем файлам cookie для текущего домена осуществляется через document.cookie.

2 голосов
/ 04 августа 2010

(для домена, а не для страницы, на которую указывает tur1ng)

http://snipplr.com/view/15641/list-cookies-in-javascript/

1 голос
/ 04 августа 2010

Нет, нет.Вы можете только читать информацию, связанную с текущим доменом.

0 голосов
/ 22 июня 2019

Для быстрого просмотра файлов cookie на любой конкретной странице, я держу ярлык на панели избранного «Cookies» с URL-адресом

javascript:window.alert(document.cookie.split(';').join(';\r\n'));
0 голосов
/ 06 декабря 2018

Некоторые файлы cookie, такие как URL-адреса реферера, содержат =.В результате простое разбиение на = приведет к неправильным результатам, а предыдущие ответы здесь будут разбиты по времени (или сразу, в зависимости от вашей глубины использования).

Это займет только первый случай равенствазнак.Возвращает объект с парами ключ-значение cookie.

// Returns an object of key value pairs for this page's cookies
function getPageCookies(){

    // cookie is a string containing a semicolon-separated list, this split puts it into an array
    var cookieArr = document.cookie.split(";");

    // This object will hold all of the key value pairs
    var cookieObj = {};

    // Iterate the array of flat cookies to get their key value pair
    for(var i = 0; i < cookieArr.length; i++){

        // Remove the standardized whitespace
        var cookieSeg = cookieArr[i].trim();

        // Index of the split between key and value
        var firstEq = cookieSeg.indexOf("=");

        // Assignments
        var name = cookieSeg.substr(0,firstEq);
        var value = cookieSeg.substr(firstEq+1);
        cookieObj[name] = value;
   }
   return cookieObj;
}
0 голосов
/ 05 октября 2018
function listCookies() {
    let cookies = document.cookie.split(';')
    cookies.map((cookie, n) => console.log(`${n}:`, decodeURIComponent(cookie)))
}

function findCookie(e) {
  let cookies = document.cookie.split(';')
  cookies.map((cookie, n) => cookie.includes(e) && console.log(decodeURIComponent(cookie), n))
}

Это специально для окна, в котором вы находитесь. Пытался держать его в чистоте и кратким.

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