2013-10-01 4 views
8

मुझे पता है कि इस सवाल से हजारों बार पूछा गया है लेकिन कोई जवाब वास्तव में मुझे वह नहीं देता है जिसे मैं ढूंढ रहा हूं। मैं कुछ जानकारी संग्रहीत करने के लिए jQuery cookie का उपयोग कर रहा हूं, लेकिन मैं चाहता हूं कि ब्राउजर बंद होने पर उन्हें समाप्त हो जाए। window.unload एक व्यवहार्य विकल्प नहीं है (पढ़ें: काम नहीं करता।)क्या jQuery कुकीज़ के लिए सत्र चर की तरह समाप्त हो सकता है?

मेरा प्रश्न यह है: यह कुकी समाप्त करने के लिए जब ब्राउज़र, बंद कर देता है एक सत्र की तरह सेट करने के लिए वास्तव में संभव है? यदि हां, तो क्या कोई जानता है कि कैसे?

अद्यतन: समाप्त हो जाने के बजाय यह काफी सरल है: 0 (जो काम नहीं करता), बस किसी भी समाप्ति को पास न करें। खैर, यह बताता है कि क्यों कई सवाल नहीं थे।

धन्यवाद सब कुछ।

+1

HTTP है के लिए निम्न विशेषता का उपयोग करने के समाप्ति तिथि भेजने की जरूरत है। आरएफसी और कार्यान्वयन की जांच करें यदि यह सही तिथियां भेजता है। (अतीत में होना चाहिए।) – schlingel

उत्तर

18

बाहर कर देता है यह काफी आसान है बजाय समाप्ति पास करने का: 0 (जो काम नहीं किया), बस डॉन कोई भी समाप्ति पास नहीं है। खैर, यह बताता है कि क्यों कई सवाल नहीं थे।

तो बजाय तो जैसे झंडे के साथ समाप्त होने से गुजर रहा:

$.cookie(key, value, { expiry: 0, domain: '', path: '' }); 

तुम बस समाप्ति मूल्य को छोड़ देते हैं:

$.cookie(key, value, { domain: '', path: '' }); 

और यह काम करता है। यह एक साधारण बात है, कि यह मुझे भ्रमित कर दिया।

लेकिन वैसे भी धन्यवाद!

2

RFC 2965 specification में यह संभव है। ऐसा कहा जाता है कि यदि आप ब्राउजर का समर्थन करते हैं तो अपने कुकी हैंडलिंग कोड और में "छोड़ दें" संपत्ति सेट करें।

यह कहा गया: jQuery कुकी अस्वीकरण-संपत्ति का समर्थन नहीं करती है। तुम इतनी तरह jQuery-Cookie कोड का विस्तार करने के लिए होता है (इसके बारे में मूल फ़ाइल में लाइन 57 है):,

 return (document.cookie = [ 
      config.raw ? key : encodeURIComponent(key), 
      '=', 
      config.raw ? value : encodeURIComponent(value), 
      options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE 
      options.path ? '; path=' + options.path : '', 
      options.domain ? '; domain=' + options.domain : '', 
          options.discard ? '; Discard=' + options.discard : '', 
      options.secure ? '; secure' : '' 
     ].join('')); 
0

अगर आप इस

$.cookie.defaults = { path: '/', expires: 365 }; 

की तरह एक डिफ़ॉल्ट सेटअप का उपयोग तो आप प्रत्येक कुकी मूल्य

$.cookie(key, value, { expires: null }); 
संबंधित मुद्दे