سؤال

أريد استخدام jQuery لحذف ملفات تعريف الارتباط ؛ حاولت هذا

$.cookie('name', '', { expires: -1 });

ثم أقوم بتحديث الصفحة ولا يزال ملف تعريف الارتباط موجودًا:

alert('name:' +$.cookie('name'));

لماذا ا؟ شكرًا

هل كانت مفيدة؟

المحلول

لحذف ملف تعريف الارتباط مع jQuery ، اضبط القيمة على Null:

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

يحرر: كان الحل النهائي هو تحديد صراحة path خاصية عند الوصول إلى ملف تعريف الارتباط ، لأن OP تصل إلى ملف تعريف الارتباط من صفحات متعددة في أدلة مختلفة ، وبالتالي كانت المسارات الافتراضية مختلفة (لم يتم وصف هذا في السؤال الأصلي). تم اكتشاف الحل في المناقشة أدناه ، وهو ما يفسر سبب قبول هذه الإجابة - على الرغم من عدم صحة.

بالنسبة لبعض الإصدارات ، سيقوم المحلول أعلاه بتعيين ملف تعريف الارتباط على سلسلة Null. وبالتالي عدم إزالة ملف تعريف الارتباط. استخدم الكود كما هو مقترح أدناه بدلاً من ذلك.

$.removeCookie('the_cookie', { path: '/' });

نصائح أخرى

يمكنك تجربة هذا:

$.removeCookie('the_cookie', { path: '/' });

مصدر: https://github.com/carhartl/jquery-cookie#readme

يمكنك أيضًا حذف ملفات تعريف الارتباط دون استخدام المكون الإضافي jQuery.cookie:

document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';

إنها مشكلة سوء فهم ملفات تعريف الارتباط. تتعرف المتصفحات على قيم ملفات تعريف الارتباط ليس فقط للمفاتيح تقارن أيضًا Path and Domain. لذا ، يتعرف المتصفحات على قيمة مختلفة قيمها ملف تعريف الارتباط هذا المفتاح هو "اسم" مع خيار إعداد الخادم (path = '/' ؛ domain = 'mydomain.com') والمفتاح هو "الاسم" بدون خيار.

جرب هذا

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

{path: '/'} القيام بالمهمة من أجلك

عملت بالنسبة لي فقط متى path تم تعيينه ، أي:

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

ما تفعله صحيح ، المشكلة في مكان آخر ، على سبيل المثال ، يتم تعيين ملف تعريف الارتباط مرة أخرى بطريقة ما على التحديث.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top