JavaScriptを使用して、ブラウザにすべてのcookiesを保存する必要があります。どうすればできますか?
特定のサイトのCookieにのみアクセスできます。 document.cookie
を使用すると、エスケープされたkey = valueのペアのリストがセミコロンで区切られます。
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"
HttpOnly
cookiesが表示されません。document.cookie
プロパティにあります。このプロパティには、name=value
ペアのsemicolonで区切られたリストが含まれます。できません。セキュリティ上の理由から、設計により、サイトで設定されたCookieのみにアクセスできます。 StackOverflowは、UserVoiceによって設定されたCookieやAmazonによって設定されたCookieを見ることができません。
ブラウザで開いている現在のドキュメントのすべてのCookieを取得するには、document.cookie
プロパティを再度使用します。
タイトルはプログラマティックである必要があることを指定していなかったため、これは真のデバッグ/プライバシー管理の問題であり、ソリューションはブラウザ依存であり、詳細なCookie管理トールおよび/またはデバッグモジュールが組み込まれたブラウザを必要とすると仮定しますプラグイン/拡張機能。そのうちの1つをリストし、他の人に詳細を知っているブラウザーで作成するように依頼します。バージョンについては正確にしてください。
クロム、鉄ビルド(SRWare Iron 4.0.280)
Wrench(tool)メニュー:オプション/フードの下/ [CookieとWebサイトのアクセス許可を表示]関連するドメイン/サイトについては、検索ボックスにサフィックスを入力します(.foo.tvなど)。警告:ノード(サイトまたはCookie)がクリック強調表示されている場合、[削除]のみを使用して特定のサブツリーを削除します。 [すべて削除]を使用しても、検索で選択されたすべてのサイトのCookieが削除され、デバッグセッションが無駄になります。
モダンなアプローチ。
let c = document.cookie.split(";").reduce( (ac, cv, i) => Object.assign(ac, {[cv.split('=')[0]]: cv.split('=')[1]}), {});
console.log(c);
;)
オブジェクトのキーにtrim()を追加し、strという名前を付けたため、ここで文字列を処理していることがより明確になります。
export const getAllCookies = () => document.cookie.split(';').reduce((ac, str) => Object.assign(ac, {[str.split('=')[0].trim()]: str.split('=')[1]}), {});