2009-07-06 23 views
44

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

मैंने कहीं पढ़ा है कि सत्र कुकी ब्राउज़र मेमोरी में बरकरार है और ब्राउज़र बंद होने पर हटा दिया जाएगा।

// sessionFooCookie is session cookie 
// this code does not delete the cookie while the browser is still on 
jQuery.cookie('sessionFooCookie', null); 

धन्यवाद।

अधिक जानकारी: उपरोक्त कोड का टुकड़ा एक JavaScript कोड स्निपेट, jQuery और उसके jQuery.cookie प्लगइन का उपयोग कर रहा है।

उत्तर

56

एक सत्र कुकी एक समाप्ति तिथि के बिना केवल एक सामान्य कुकी है। ब्राउज़र को तब तक वैध किया जाता है जब तक कि विंडो बंद न हो या प्रोग्राम छोड़ दिया जाए।

लेकिन यदि कुकी httpOnly कुकी (httpOnly parameter सेट के साथ एक कुकी) है, तो आप HTTP के बाहर से इसे पढ़, बदल या हटा नहीं सकते हैं।

+3

जब तक मैं नहीं है मुझे कहना पड़ेगा, कि मैं सवाल के साथ एक घंटे के बारे में पर नजर रखने के खिलाफ सिर से धड़क रहा था _ "मैं क्यों जावास्क्रिप्ट से सत्र कुकी हटाने में सक्षम नहीं कर रहा हूँ?" _, संक्षिप्त उत्तर मिला: यह 'httpOnly' था ... धन्यवाद, बहुत उपयोगी है। – BlitZ

+1

एफवाईआई: @ गंबो की आखिरी वाक्य में HTTP_ के साथ, वह वास्तव में _server side_ का अर्थ है। – ThomasDC

6

वहाँ IE और ओपेरा के साथ मुद्दों जब अतीत को समाप्त हो तिथि (जो क्या jQuery कुकी प्लगइन करता है)

यह सफारी और मोज़िला/फ़ायर्फ़ॉक्स में ठीक काम करता है स्थापित करने सत्र कुकीज़ को हटाने नहीं जाना जाता है।

-3

हटाया जा रहा है एक jQuery cookie:

$(function() { 
    var COOKIE_NAME = 'test_cookie'; 
    var options = { path: '/', expires: 10 }; 
    $.cookie(COOKIE_NAME, 'test', options); // sets the cookie 
    console.log($.cookie(COOKIE_NAME)); // check the value // returns test 
    $.cookie(COOKIE_NAME, null, options); // deletes the cookie 
    console.log($.cookie(COOKIE_NAME)); // check the value // returns null 
}); 
0

यह सर्वर साइड, जहां कुकी जारी किया गया था पर किया जाना चाहिए।

+0

आपको ऐसा क्यों लगता है? – ysth

+0

आप यह कैसे करते हैं? विशेष रूप से नोड में यदि आप कर सकते हैं! धन्यवाद। –

32

जब आप इसे सेट के रूप में ठीक उसी पथ आपूर्ति करने के लिए सुनिश्चित करें, यानी

स्थापना:

$.cookie('foo','bar', {path: '/'}); 

हटाना:

$.cookie('foo', null, {path: '/'}); 

ध्यान दें कि

$.cookie('foo', null); 

काम नहीं करेगा, क्योंकि मैं टी वास्तव में एक ही कुकी नहीं है।

उम्मीद है कि मदद करता है। हैश

+3

इसे स्पष्ट करने के लिए धन्यवाद।इच्छा है कि मैं इसे कुछ बार वोट दे सकता हूं। –

+1

इस पोस्ट ने मुझे सिरदर्द के घंटे बचाए। धन्यवाद! – lfender6445

2

में अन्य विकल्पों के लिए भी यही है, आप कल की समाप्ति की तारीख निर्धारित करके ऐसा कर सकते हैं।

जावास्क्रिप्ट में कुकीज़ के बारे में मेरे नए पदों की सूची आपको मदद कर सकती है।

http://www.markusnordhaus.de/2012/01/20/using-cookies-in-javascript-part-1/

+1

कि यूआरएल चला गया है मुझे डर है – nxthor

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