2012-01-04 69 views
14

Tôi đã tìm thấy một lỗi lạ trong ứng dụng của mình và do trải nghiệm nhỏ của tôi với Javascript tôi không thể gỡ lỗi nó;thiết lập cookie liên tục với javascript

Tôi đang cố gắng đặt cookie cố định, sẽ mất sau một năm kể từ khi được đặt (giá trị tối đa trong các trình duyệt chính) nhưng vẫn tồn tại và sẽ không bị xóa sau khi trình duyệt bị đóng, tôi đã sử dụng mã này :

// Build the expiration date string: 
var expiration_date = new Date(); 
expiration_date . setYear (expiration_date . getYear() + 1); 
expiration_date = expiration_date . toGMTString(); 
// Build the set-cookie string: 
var cookie_string = "test_cookies = true; path=/; expires=" + expiration_date; 
// Create/update the cookie: 
document . cookie = cookie_string; 

tôi đã nhận thấy rằng cookie có thẻ phiên khi tôi sử dụng cookie quản lý plugin, và chỉ có những người có thẻ này sẽ được xóa sau khi trình duyệt đóng cửa (những người khác như Wordpress và kịch bản như vậy tồn tại)

+1

Ngày hết hạn Không cho phép xóa khi trình duyệt bị đóng. Đó là những gì họ đang cho. –

Trả lời

20

Tôi đã thay đổi cú pháp của bạn đối với kiểu mã hóa của tôi (các biến ở trên cùng, tối thiểu đang truyền lại, v.v.) và ví dụ bên dưới hoạt động trên localhost khá tốt.

// Build the expiration date string: 
var expiration_date = new Date(); 
var cookie_string = ''; 
expiration_date.setFullYear(expiration_date.getFullYear() + 1); 
// Build the set-cookie string: 
cookie_string = "test_cookies=true; path=/; expires=" + expiration_date.toUTCString(); 
// Create or update the cookie: 
document.cookie = cookie_string; 

Nếu bạn đang gặp vấn đề trên máy chủ sản xuất, cố gắng thiết lập các lĩnh vực cookie cũng (www.quirksmode.org/js/cookies.html#link5)

2

bạn đã thử bằng cách sử dụng getFullYear()setFullYear() phương pháp của Date dụ thay vì getYear()setYear()? cái sau không được dùng nữa, xem here.

hy vọng điều đó sẽ hữu ích! cổ vũ.

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