मुझे जावास्क्रिप्ट का उपयोग करके अपने ब्राउज़र में संग्रहीत सभी कुकीज़ प्राप्त करने की आवश्यकता है । यह कैसे किया जा सकता है?
मुझे जावास्क्रिप्ट का उपयोग करके अपने ब्राउज़र में संग्रहीत सभी कुकीज़ प्राप्त करने की आवश्यकता है । यह कैसे किया जा सकता है?
जवाबों:
आप केवल एक विशिष्ट साइट के लिए कुकीज़ तक पहुँच सकते हैं। उपयोग करने से 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"
HttpOnly
कुकीज़ नहीं देख सकते ।document.cookie
संपत्ति में हैं, जिसमें अर्धविराम से अलग की गई name=value
जोड़ी है।आप नहीं कर सकते। डिज़ाइन के अनुसार, सुरक्षा उद्देश्य के लिए, आप केवल अपनी साइट द्वारा निर्धारित कुकीज़ तक पहुँच सकते हैं। StackOverflow UserVoice द्वारा निर्धारित कुकीज़ को नहीं देख सकता है और न ही अमेज़ॅन द्वारा सेट किए गए।
ब्राउज़र में चालू दस्तावेज़ के लिए सभी कुकीज़ पुनः प्राप्त करने के लिए, आप फिर से document.cookie
संपत्ति का उपयोग करते हैं।
आधुनिक दृष्टिकोण।
let c = document.cookie.split(";").reduce( (ac, cv, i) => Object.assign(ac, {[cv.split('=')[0]]: cv.split('=')[1]}), {});
console.log(c);
;)
चूंकि शीर्षक ने यह निर्दिष्ट नहीं किया कि उसे प्रोग्रामेटिक होना है, इसलिए मैं मान लूंगा कि यह एक वास्तविक डिबगिंग / गोपनीयता प्रबंधन समस्या थी और समाधान ब्राउज़र पर निर्भर है और विस्तृत कुकी प्रबंधन टोल और / या डीबगिंग मॉड्यूल में निर्मित ब्राउज़र की आवश्यकता है एक प्लग-इन / एक्सटेंशन। मैं एक सूची देने जा रहा हूं और अन्य लोगों को उन ब्राउज़रों पर लिखने के लिए कहता हूं जिन्हें वे विस्तार से जानते हैं और कृपया संस्करणों के साथ सटीक रहें।
क्रोमियम, आयरन बिल्ड (SRWare आयरन 4.0.280)
रिंच (उपकरण) मेनू: विकल्प / हूड के तहत / [कुकीज़ और वेबसाइट की अनुमति दिखाएं] संबंधित डोमेन / साइट के लिए खोज बॉक्स में प्रत्यय टाइप करें (जैसे .foo.tv)। कैविएट: जब आपके पास एक नोड (साइट या कुकी) हो, तो हाइलाइट किया गया केवल विशिष्ट उपप्रकारों को मारने के लिए [निकालें] का उपयोग करें। [सभी को हटाएं] का उपयोग करके खोज द्वारा चयनित सभी साइटों के लिए अभी भी कुकीज़ हटा देंगे और अपना डिबगिंग सत्र बर्बाद कर सकते हैं।
ऑब्जेक्ट में कुंजी को ट्रिम () जोड़ा गया, और इसे स्ट्रिंग नाम दें, इसलिए यह अधिक स्पष्ट होगा कि हम यहां स्ट्रिंग के साथ काम कर रहे हैं।
export const getAllCookies = () => document.cookie.split(';').reduce((ac, str) => Object.assign(ac, {[str.split('=')[0].trim()]: str.split('=')[1]}), {});
यदि आप ब्राउज़र एक्सटेंशन विकसित करते हैं, तो आप browser.cookies.getAll () की कोशिश कर सकते हैं
आप जो पूछ रहे हैं वह संभव है; लेकिन यह केवल एक विशिष्ट ब्राउज़र पर काम करेगा। इसे प्राप्त करने के लिए आपको एक ब्राउज़र एक्सटेंशन ऐप विकसित करना होगा। बेहतर समझने के लिए आप क्रोम एपीआई के बारे में अधिक पढ़ सकते हैं। https://developer.chrome.com/extensions/cookies