2013-08-28 28 views
19

Tôi có hai cookie trong tập tin JS của tôi và tôi muốn để loại bỏ chúng.loại bỏ Cookie sử dụng jquery không làm việc

Tôi đã thử đoạn code dưới đây nhưng nó không làm việc

$.removeCookie('filter', { path: '/Home/' }); 
$.removeCookie('Pfilter', { path: '/Home/' }); 

Tôi cũng đã cố gắng dưới đây cho cookie null, nhưng điều này cũng không hoạt động.

Thanks for the help

$.cookie('filter',null, { path: '/Home/' }); 
+3

Bạn đã bao gồm các plugin cookie? Theo mặc định, jQuery không có phương thức 'cookie' và' removeCookie'. – kapa

Trả lời

41

Nó có thể phụ thuộc vào những gì con đường cookie của bạn đang sử dụng. Nếu bạn goto công cụ phát triển chrome và kiểm tra cột con đường dưới Resources> Cookies> Path.

enter image description here

Bạn có thể sử dụng chung / cho con đường của bạn thay vì /Home/. Cung cấp cho mã bên dưới một lần thử.

Để xóa một cookie với jQuery thiết lập giá trị null:

$.removeCookie('filter', { path: '/' }); 
+0

tôi đang sử dụng trang ví dụ cụ thể. Trang chủ để sử dụng Trang chủ trong đó –

+0

Bạn đã kiểm tra các công cụ dành cho nhà phát triển Chrome chưa? Tài nguyên> Cookie> Đường dẫn? – Mark

+0

có kiểm tra, điều này cũng hiển thị/Home/ –

5

Bạn hãy thử $ .cookie ("tên", null);

$.removeCookie('filter', { path: '/' }); 
+1

có $ .cookie ("name", null); –

+0

thử $ .removeCookie – Ravia

+0

cảm ơn @Ravia vì gợi ý ... nó hoạt động tuyệt vời! nên được đánh dấu là câu trả lời –

2

gì làm việc cho tôi là thiết lập cookie để null trước khi tháo nó: $.cookie("filter", null); $.removeCookie("filter);

0

Tôi đã gặp vấn đề tương tự với phiên bản jquery 1.7.1 và cookie jquery phiên bản 1.4.1

Đây là lái xe cho tôi điên vì vậy tôi đã quyết định nhảy vào mã nguồn và tôi đã tìm ra những gì là sai.

Dưới đây là định nghĩa của $ .removeCookie

$.removeCookie = function (key, options) { 
    if ($.cookie(key) === undefined) { // this line is the problem 
     return false; 
    } 

    // Must not alter options, thus extending a fresh object... 
    $.cookie(key, '', $.extend({}, options, { expires: -1 })); 
    return !$.cookie(key); 
}; 

Như bạn có thể nhìn thấy khi kiểm tra chức năng nếu cookie tồn tại nó không mất các tùy chọn đối tượng vào tài khoản. Vì vậy, nếu bạn đang ở trên một con đường khác với cookie bạn đang cố gắng để loại bỏ các chức năng sẽ thất bại.

Một vài giải pháp:

Nâng cấp cookie Jquery. Phiên bản mới nhất thậm chí không làm kiểm tra độ tỉnh táo đó.

hoặc thêm này cho bạn tài liệu sẵn sàng

$.removeCookie = function (key, options) { 
    if ($.cookie(key, options) === undefined) { // this line is the fix 
     return false; 
    } 

    // Must not alter options, thus extending a fresh object... 
    $.cookie(key, '', $.extend({}, options, { expires: -1 })); 
    return !$.cookie(key); 
}; 

hoặc khi loại bỏ các tập tin cookie làm điều gì đó như thế này:

$.cookie('cookie-name', '', { path: '/my/path', expires:-1 }); 
Các vấn đề liên quan