Есть ли способ, с помощью Javascript, перечислить все файлы cookie, связанные с текущей страницей? То есть, если я не знаю имена файлов cookie, но хочу получить всю содержащуюся информацию.
Как я могу перечислить все файлы cookie для текущей страницы с помощью Javascript?
Ответ 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 в качестве значений.
Ответ 4
(Для домена не указана страница, как указано)
Ответ 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'));