Мне нужно, чтобы все куки сохранялись в моем браузере с использованием JavaScript. Как это можно сделать?
Мне нужно получить все файлы cookie из браузера
Ответ 1
Вы можете получить доступ только к файлам cookie для определенного сайта. Используя document.cookie
, вы получите список экранированных пар ключ = значение, разделенных точкой с запятой.
secret=do%20not%20tell%you;last_visit=1225445171794
Чтобы упростить доступ, вам нужно проанализировать строку и удалить все записи:
var getCookies = function(){
var pairs = document.cookie.split(";");
var cookies = {};
for (var i=0; i<pairs.length; i++){
var pair = pairs[i].split("=");
cookies[(pair[0]+'').trim()] = unescape(pair.slice(1).join('='));
}
return cookies;
}
Так что вы могли бы позже написать:
var myCookies = getCookies();
alert(myCookies.secret); // "do not tell you"
Ответ 2
- Вы не можете видеть файлы cookie для других сайтов.
- Вы не можете видеть
HttpOnly
куки. - Все файлы cookie, которые вы можете видеть, находятся в свойстве
document.cookie
, которое содержит разделенный точкой с запятой список парname=value
.
Ответ 3
Вы не можете. По дизайну для обеспечения безопасности вы можете получить доступ только к файлам cookie, установленным вашим сайтом. StackOverflow не может видеть файлы cookie, установленные пользователем UserVoice, и те, которые установлены Amazon.
Ответ 4
Чтобы получить все файлы cookie для текущего документа, открытые в браузере, вы снова используете свойство document.cookie
.
Ответ 5
Современный подход.
let c = document.cookie.split(";").reduce( (ac, cv, i) => Object.assign(ac, {[cv.split('=')[0]]: cv.split('=')[1]}), {});
console.log(c);
;)
Ответ 6
Поскольку в заголовке не указано, что он должен быть программным, я предполагаю, что это была настоящая проблема управления отладки/конфиденциальности, и решение зависит от браузера и требует наличия браузера со встроенными подробными данными об управлении файлами cookie и/или модуль отладки или подключаемый модуль/расширение. Я собираюсь перечислить их и попросить других людей писать в браузерах, которые они знают подробно, и, пожалуйста, уточните их с версиями.
Chromium, Iron build (SRWare Iron 4.0.280)
Меню гаечного ключа (инструмент): Параметры/Под капотом/[Показывать разрешения файлов cookie и веб-сайта] Для связанных доменов/сайтов введите суффикс в поле поиска (например,.foo.tv). Предостережение: если у вас есть node (сайт или файл cookie), нажмите только выделение, чтобы удалить определенные поддеревья, используя [Удалить]. Использование [Удалить все] по-прежнему удаляет файлы cookie для всех сайтов, выбранных путем поиска, и отбрасывает ваш сеанс отладки.
Ответ 7
Дастин Диас писал об этом:
http://www.dustindiaz.com/top-ten-javascript
function getCookie( name ) {
var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
return null;
}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ';', len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );
}
Ответ 8
Добавил trim() к ключу объекта и назовите его str, чтобы было более понятно, что мы имеем дело со строкой здесь.
export const getAllCookies = () => document.cookie.split(';').reduce((ac, str) => Object.assign(ac, {[str.split('=')[0].trim()]: str.split('=')[1]}), {});