Saya ingin menggunakan jQuery untuk menghapus cookie; Saya sudah mencoba ini:
$.cookie('name', '', { expires: -1 });
Namun saat saya menyegarkan halaman, cookie masih ada:
alert('name:' +$.cookie('name'));
Mengapa?
Saya ingin menggunakan jQuery untuk menghapus cookie; Saya sudah mencoba ini:
$.cookie('name', '', { expires: -1 });
Namun saat saya menyegarkan halaman, cookie masih ada:
alert('name:' +$.cookie('name'));
Mengapa?
Jawaban:
Untuk menghapus cookie dengan JQuery, setel nilainya menjadi null:
$.cookie("name", null, { path: '/' });
Edit: Solusi terakhir adalah secara eksplisit menentukan path
properti setiap kali mengakses cookie, karena OP mengakses cookie dari beberapa halaman di direktori yang berbeda, dan dengan demikian jalur default berbeda (ini tidak dijelaskan dalam pertanyaan asli). Solusinya ditemukan dalam diskusi di bawah ini, yang menjelaskan mengapa jawaban ini diterima - meskipun tidak benar.
Untuk beberapa versi cookie jQ, solusi di atas akan menyetel cookie ke string null. Jadi tidak menghapus cookie. Gunakan kode seperti yang disarankan di bawah ini.
$.removeCookie('the_cookie', { path: '/' });
if (value === null) { value = '';options.expires = -1;}
, bahwa apa yang terjadi di dalam fungsi pengolahan, sehingga mereka seharusnya melakukan hal yang sama. (parameternya (name, value, options)
)
path
di opsi untuk kedua perintah, karena defaultnya ke jalur halaman saat ini. Uji dengan menyetel ke root domain Anda di semua tempat di mana cookie dibaca dan ditulis:$.cookie('name', value, {path:'/'})
$.removeCookie('cookie_name')
tidak.
Anda dapat mencoba ini:
$.removeCookie('the_cookie', { path: '/' });
Anda juga dapat menghapus cookie tanpa menggunakan plugin jquery.cookie:
document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
ini adalah masalah kesalahpahaman tentang cookie. Browser mengenali nilai cookie tidak hanya untuk kunci juga membandingkan jalur opsi & domain. Jadi Browser mengenali nilai yang berbeda nilai cookie mana yang kuncinya adalah 'name' dengan opsi pengaturan server (path = '/'; domain = 'mydomain.com') dan kuncinya adalah 'name' tanpa opsi.
Coba ini
$.cookie('_cookieName', null, { path: '/' });
{Path: '/'} melakukan pekerjaan untuk Anda
Bekerja untuk saya hanya jika path
diatur, yaitu:
$.cookie('name', null, {path:'/'})
Apa yang Anda lakukan sudah benar, masalahnya ada di tempat lain, misalnya cookie disetel lagi entah bagaimana saat disegarkan.