Çerezleri silmek için jQuery kullanmak istiyorum; Bunu denedim:
$.cookie('name', '', { expires: -1 });
Ancak sayfayı yenilediğimde, çerez hala orada:
alert('name:' +$.cookie('name'));
Neden?
Çerezleri silmek için jQuery kullanmak istiyorum; Bunu denedim:
$.cookie('name', '', { expires: -1 });
Ancak sayfayı yenilediğimde, çerez hala orada:
alert('name:' +$.cookie('name'));
Neden?
Yanıtlar:
JQuery ile bir çerezi silmek için değeri null olarak ayarlayın:
$.cookie("name", null, { path: '/' });
Düzenleme: Nihai çözüm, path
tanımlama bilgisine her erişildiğinde özelliği açıkça belirtmektir , çünkü OP, tanımlama bilgisine farklı dizinlerdeki birden çok sayfadan erişir ve bu nedenle varsayılan yollar farklıdır (bu, orijinal soruda açıklanmamıştır). Çözüm, aşağıdaki tartışmada keşfedildi ve bu, doğru olmasa da bu cevabın neden kabul edildiğini açıklıyor.
Bazı jQ tanımlama bilgisi sürümleri için yukarıdaki çözüm tanımlama bilgisini dize null olarak ayarlayacaktır. Böylece çerezi kaldırmaz. Bunun yerine kodu aşağıda önerilen şekilde kullanın.
$.removeCookie('the_cookie', { path: '/' });
if (value === null) { value = '';options.expires = -1;}
bu, işleme işlevinin içine girdiği için aynı şeyi gerçekleştirmeleri gerekiyor. (parametreler (name, value, options)
)
path
varsayılan olarak geçerli sayfanın yoluna ayarlandığından, seçeneklerde her iki komut için de açıkça ayarlamanız gerekir . Etki alanınızın kök dizinini hem çerezin okunduğu hem de yazıldığı her yerde ayarlayarak test edin:$.cookie('name', value, {path:'/'})
$.removeCookie('cookie_name')
yapar.
Bunu deneyebilirsiniz:
$.removeCookie('the_cookie', { path: '/' });
Çerezleri jquery.cookie eklentisini kullanmadan da silebilirsiniz:
document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
çerezin yanlış anlaşılma sorunudur. Tarayıcılar, sadece anahtarlar için değil, aynı zamanda seçenek yolunu ve etki alanını karşılaştırmak için çerez değerlerini tanır. Bu nedenle Tarayıcılar, sunucu ayarı seçeneğiyle (yol = '/'; etki alanı = 'alanım.com') ve anahtarın 'ad' olduğu ve hiçbir seçenek olmadan 'ad' olan çerez değerlerinin farklı değeri tanır.
Bunu dene
$.cookie('_cookieName', null, { path: '/' });
{Yol: '/'} işi sizin yerinize yapar
Benim için çalıştı sadece zaman path
kuruldu, yani:
$.cookie('name', null, {path:'/'})
Yaptığınız şey doğrudur, sorun başka bir yerde, örneğin tanımlama bilgisi bir şekilde yenilenirken yeniden ayarlanıyor.