2013-10-19 13 views
12

Điều tôi đang cố gắng làm là khi người dùng truy cập trang test.html, để xóa cookie khỏi các trang mà trước đây anh đã truy cập, như test1.html, test2.html v.v ... và đặt cookie mới .Xóa TẤT CẢ cookie bằng jquery và đặt

Có cách nào dễ dàng hơn để xóa tất cả cookie đã đặt trước đó cùng một lúc (tôi có 100 trang để khai báo từng lần một) với jquery không?

Tôi không biết bất kỳ cách nào khác, ngoại trừ để xóa từng cái một và sau đó thiết lập mới:

$.cookie('test1', 'test1', { expires: -1, path: '/' });//deleting cookies from test1.html 
$.cookie('test2', 'test2', { expires: -1, path: '/' });//deleting cookies from test2.html 

$.cookie('test', 'test', { expires: 30, path: '/' });//setting new cookies 

Cảm ơn

Trả lời

19

Tiếp theo jquery-cookie spec:

1) Bạn gọi $ .cookie () sẽ trả về tất cả cookie trên trang hiện tại.
2) Chỉ cần lặp qua và loại bỏ như sau:

var cookies = $.cookie(); 
for(var cookie in cookies) { 
    $.removeCookie(cookie); 
} 

Lưu ý: khi xóa cookie, bạn phải vượt qua các tùy chọn cùng một con đường chính xác, tên miền và an toàn đã được sử dụng để thiết lập các cookie, trừ khi bạn' lại dựa vào các tùy chọn mặc định.

+0

you..this cảm ơn từng làm việc cho tôi .. – yas

+0

nhưng tôi có một câu hỏi liên quan đến ghi chú của bạn. Tôi chỉ sao chép và dán nó làm việc cho tôi, nhưng bạn nói rằng tôi phải vượt qua chính xác cùng một con đường, tên miền và các tùy chọn an toàn được sử dụng để thiết lập các cookie. Điều này làm tôi bối rối ... bởi vì tôi đã yêu cầu giải pháp xóa tất cả cookie cùng một lúc. – yas

+0

Khi sửa đổi/xóa cookie vì lý do bảo mật trình duyệt, bạn phải chuyển thông tin xác thực chính xác. Lý do chính cho điều này là do đó bạn không làm phiền các bên khác cookie trên trang. Ví dụ: nếu bạn đang làm việc trên một tiện ích trên yahoo.com và quyết định xóa tất cả cookie của mình, bạn sẽ không ảnh hưởng đến các tiện ích con khác trên trang trừ khi họ sử dụng cùng thông tin đăng nhập. Thông thường, các nhà phát triển thiết lập tất cả cookie trang của họ bằng cách sử dụng cùng một cài đặt, vì vậy phương pháp này sẽ hoạt động đối với hầu hết các trường hợp sử dụng. – megawac

6
var cookies = document.cookie.split(";"); 
for(var i=0; i < cookies.length; i++) { 
    var equals = cookies[i].indexOf("="); 
    var name = equals > -1 ? cookies[i].substr(0, equals) : cookies[i]; 
    document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"; 
} 

Taken từ những câu hỏi How to delete all cookies with jquery

0

Xin lưu ý rằng các jquery-cookie spec chúng tôi không còn được duy trì, thay thế bởi JS Cookie

Các vấn đề liên quan