jQuery ، حذف ملفات تعريف الارتباط
-
01-10-2019 - |
سؤال
أريد استخدام 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: '/' });
يمكنك أيضًا حذف ملفات تعريف الارتباط دون استخدام المكون الإضافي 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:'/'})
ما تفعله صحيح ، المشكلة في مكان آخر ، على سبيل المثال ، يتم تعيين ملف تعريف الارتباط مرة أخرى بطريقة ما على التحديث.