Tôi muốn sử dụng JQuery để xóa cookie; Tôi đã thử cái này
$.cookie('name', '', { expires: -1 });
Sau đó, tôi làm mới trang và cookie vẫn ở đó:
alert('name:' +$.cookie('name'));
Tại sao? Cảm ơn
Tôi muốn sử dụng JQuery để xóa cookie; Tôi đã thử cái này
$.cookie('name', '', { expires: -1 });
Sau đó, tôi làm mới trang và cookie vẫn ở đó:
alert('name:' +$.cookie('name'));
Tại sao? Cảm ơn
Câu trả lời:
Để xóa cookie bằng JQuery, hãy đặt giá trị thành null:
$.cookie("name", null, { path: '/' });
Chỉnh sửa: Giải pháp cuối cùng là chỉ định rõ ràng thuộc path
tính bất cứ khi nào truy cập cookie, bởi vì OP truy cập cookie từ nhiều trang trong các thư mục khác nhau và do đó các đường dẫn mặc định khác nhau (điều này không được mô tả trong câu hỏi ban đầu). Giải pháp được phát hiện trong cuộc thảo luận dưới đây, điều này giải thích tại sao câu trả lời này được chấp nhận - mặc dù không đúng.
Đối với một số phiên bản cookie jQ, giải pháp trên sẽ đặt cookie thành chuỗi null. Do đó không loại bỏ cookie. Sử dụng mã như được đề xuất bên dưới để thay thế.
$.removeCookie('the_cookie', { path: '/' });
if (value === null) { value = '';options.expires = -1;}
, rằng những gì bên trong hàm xử lý, vì vậy chúng phải hoạt động giống nhau. (các thông số là (name, value, options)
)
path
tùy chọn một cách rõ ràng cho cả hai lệnh, vì nó mặc định là đường dẫn của trang hiện tại. Kiểm tra bằng cách thiết lập để gốc của tên miền cả trong tất cả những nơi mà cookie được đọc và viết của bạn:$.cookie('name', value, {path:'/'})
$.removeCookie('cookie_name')
làm.
Bạn có thể thử điều này:
$.removeCookie('the_cookie', { path: '/' });
Bạn cũng có thể xóa cookie mà không cần sử dụng plugin jquery.cookie:
document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
nó là vấn đề của sự hiểu lầm về cookie. Các trình duyệt nhận ra giá trị cookie không chỉ cho các khóa mà còn so sánh tên miền và đường dẫn tùy chọn. Vì vậy, Trình duyệt nhận ra giá trị khác nhau mà cookie đánh giá khóa đó là 'tên' với tùy chọn cài đặt máy chủ (path = '/'; domain = 'mydomain.com') và khóa là 'tên' mà không có tùy chọn nào.
Thử cái này
$.cookie('_cookieName', null, { path: '/' });
{Path: '/'} thực hiện công việc cho bạn
Làm việc cho tôi chỉ khi path
được thành lập, tức là:
$.cookie('name', null, {path:'/'})
Những gì bạn đang làm là đúng, vấn đề là ở một nơi khác, ví dụ như cookie đang được thiết lập lại bằng cách nào đó khi làm mới.