2010-06-02 16 views
28

जावास्क्रिप्ट का उपयोग करके मैं एक विशिष्ट कुकी के लिए domain मान प्राप्त करना चाहता हूं।जावास्क्रिप्ट में कुकी के लिए डोमेन मान कैसे प्राप्त करें?

क्या यह संभव है? यदि हां, तो कैसे?

स्पष्टीकरण के लिए: मैं कुकी के मूल्य की तलाश नहीं कर रहा हूं। मैं "subdomain.domain.com" पर हूं और मुझे एक कुकी को हटाने की आवश्यकता है जिसका नाम ज्ञात है लेकिन इसका डोमेन मान ".domain.com" जैसा कुछ है। संक्षेप में: मैं ".domain.com" का मान प्राप्त करना चाहता हूं।

+1

कुकी गुणों (पथ, डोमेन, समाप्ति, सुरक्षा) प्राप्त करने का एकमात्र तरीका कुकी या उसके मूल्य को बनाते या संशोधित करते समय उन्हें मूल्य पर लेना है। – kennebec

उत्तर

35

क्षमा करें, आप जो भी देखते हैं वह document.cookie में मिलता है। कुकी मेटाडाटा path, domain और expires साइट कोड के लिए दृश्यमान नहीं हैं (न तो जावास्क्रिप्ट और न ही सर्वर-साइड तक)।

एक कुकी है कि के साथ कुकी द्वारा आच्छादित किया जा रहा पढ़ने के लिए एक और अधिक विशिष्ट domain या path, केवल एक चीज आप कर सकते हैं जिसके लिए एक पृष्ठ लोड अधिक-विशिष्ट कुकी आउट-ऑफ-गुंजाइश है, और पढ़ने है वहां से

, तो के रूप में आप कहते हैं, आप केवल की जरूरत एक कुकी निकालने के लिए, क्या तुम कर सकते हो जैसे विशिष्टता के हर संभव स्तर पर कुकी हटाने के लिए, .:

document.cookie= 'foo=;domain=sub.domain.example.com;expires=Sat, 01-Jan-2000 00:00:00 GMT'; 
    document.cookie= 'foo=;domain=domain.example.com;expires=Sat, 01-Jan-2000 00:00:00 GMT'; 
    document.cookie= 'foo=;domain=example.com;expires=Sat, 01-Jan-2000 00:00:00 GMT'; 

और इसी के साथ की कोशिश है path चर। आप पथ के लिए डोमेन और / डोमेन के लिए . पर विभाजित, प्रत्येक पथ और डोमेन भाग के लिए नेस्टेड लूप में डाल सकते हैं।

+3

तो मूल रूप से आप कालीन बमबारी की सलाह देते हैं। मैं या तो एक और समाधान नहीं देख सकता। :) – Wabbitseason

+0

हाँ, यह वर्णन करने का एक अच्छा तरीका है! – bobince

+0

फ़ायरफ़ॉक्स वेब डेवलपर "कुकी जानकारी देखें" उपयोगिता कैसे करता है? जाहिर है, डोमेन जानकारी कहीं कहीं है। – TARKUS

2

आप केवल उसी डोमेन से कुकीज़ तक पहुंच सकते हैं (इसमें सबडोमेन शामिल हैं)। स्पष्ट रूप से अन्यथा करना एक सुरक्षा चिंता होगी।

+1

मुझे लगता है कि यह सच नहीं है। सबडोमेन एक * के लिए कुकीज़ सेट कर सकते हैं। अभिभावक डोमेन, जैसा कि मैं इसे समझता हूं: https://serverfault.com/questions/153409/can-subdomain-example-com-set-a-cookie-that-can-be-read-by-example-com – hwjp

+1

सही: चीजों में से एक कुकीज कर सकती है कि स्थानीय स्टोरेज नहीं कर सकता: आप इसे मुख्य डोमेन पर सेट कर सकते हैं। प्रोग्रामेटिक रूप से यह पता लगाना कि "अपरिवर्तनीय" डोमेन जिसे आप इसे सेट कर सकते हैं वह जटिल हो सकता है हालांकि: आप amazon.com पर एक कुकी सेट कर सकते हैं, लेकिन co.uk नहीं, क्योंकि यह एक विशेष एसएलडी है। आपको इसके बजाय amazon.co.uk पर सेट करना होगा। तो यह "केवल पिछले दो खंडों" के रूप में सरल नहीं है। – Dtipson

संबंधित मुद्दे