2011-12-17 26 views
6

Tôi đang thiết lập một cookie trong javascript sử dụng đoạn mã sau:Chrome không thiết lập đường dẫn cookie để nhổ tận gốc

setCookie('cart_items','product_name'); 


function setCookie(name,value,days) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     var expires = "; expires="+date.toGMTString(); 
    } 
    else var expires = ""; 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

Nhưng đường dẫn cookie không được thiết lập để root (/) trong Chrome. Thay vào đó nó được đặt thành đường dẫn từ nơi trang web đang được thực hiện !!

Tôi đã thử nghiệm với IE và FF. Nó hoạt động tốt với cả hai trình duyệt này ....

Điều gì có thể xảy ra với Chrome hoặc đó có phải là vấn đề với mã tạo cookie mà tôi đang sử dụng không ??

Trong Chrome (16.0.912.63)

Đường dẫn:/xxxxxxxx/xxxxxxx

trong FF (6,0)

Đường dẫn:/

trong IE (9)

Đường dẫn:/

+0

Tại sao bạn không đặt đường dẫn cho chính mình? –

+0

đường dẫn đã được đặt rõ ràng (document.cookie = name + "=" + giá trị + hết hạn + "; đường dẫn = /";) – Sandy505

+0

ah. Xin lỗi, là lỗi của tôi. –

Trả lời

9

Lý do điều này xảy ra là bởi vì chrome không cho phép thiết lập các tập tin cookie trên các tập tin địa phương theo mặc định. Xem câu trả lời này để biết thêm thông tin: https://stackoverflow.com/a/347997/1324019 (văn bản từ câu trả lời)

Chrome không hỗ trợ cookie cho các tập tin địa phương (hoặc, như Peter Lyons đã đề cập, localhost *) trừ khi bạn bắt đầu nó với enable-file -cookie cờ. Bạn có thể đọc một cuộc thảo luận về nó tại http://code.google.com/p/chromium/issues/detail?id=535.

* Chrome không hỗ trợ cookie nếu bạn sử dụng địa chỉ IP cục bộ (127.0.0.1) trực tiếp. vì vậy trong trường hợp localhost, đó có thể là giải pháp dễ dàng hơn.

+0

^ở trên là câu trả lời đúng. nếu chỉ OP sẽ đánh dấu nó như vậy – duggi

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