Подтвердить что ты не робот

Как я могу перечислить все файлы cookie для текущей страницы с помощью Javascript?

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

4b9b3361

Ответ 1

Вы можете указать файлы cookie для текущего домена:

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;
}

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

Ответ 2

var x = document.cookie; 
window.alert(x);

Отображает все файлы cookie, к которым имеет доступ текущий сайт. Если вы, например, создали два файла cookie: "username = Frankenstein" и "username = Dracula", эти две строки кода будут отображаться "username = Frankenstein; username = Dracula". Однако информация, такая как дата истечения срока действия, не будет отображаться.

Ответ 3

Многие люди уже упоминали, что document.cookie получает все файлы 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 в качестве значений.

Ответ 5

Нет.

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

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

Ответ 6

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

Ответ 7

Эта функция возвращает все файлы cookie как вложенные объекты:

getDocumentCookies = function() {
    var theCookies = document.cookie.split(';'),
        cookieObj = {},
        tmp, tmpName, tmpVal;
    for (var i = 1 ; i <= theCookies.length; i++) {
        tmp = theCookies[i-1].split('=');
        if ( tmp[0] !== undefined && tmp[1] !== undefined ) {
            tmpName = decodeURIComponent(tmp[0].trim());
            tmpVal = decodeURIComponent(tmp[1].trim());
            if ( tmpName.indexOf('[') > -1 && tmpName.indexOf(']') > -1 ) {
                cookieObj[tmpName.split('[')[0]] = cookieObj[tmpName.split('[')[0]] || {};
                cookieObj[tmpName.split('[')[0]][tmpName.split('[')[1].replace(']', '')] = tmpVal;
            } else {
                cookieObj[tmpName] = tmpVal;
            }
        }
    }
    return cookieObj;
};

Ответ 8

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))
}

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

Ответ 9

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

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

// Returns an object of key value pairs for this page 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;
}

Ответ 10

Для быстрого просмотра файлов cookie на любой конкретной странице я сохраню ярлык "Cookies" на панели избранного с URL-адресом:

javascript:window.alert(document.cookie.split(';').join(';\r\n'));