2009-03-24 30 views
6

Làm cách nào để bạn đặt cookie trên một Miền khác đang gọi trang web của tôi bằng cuộc gọi javascript? Nó hoạt động trong FF3, nhưng không phải trong IE6.Cách đặt cookie trên một miền riêng trong Rails

Máy chủ của tôi được gọi từ thẻ javascript trên một trang web và miền riêng biệt. Kết quả trả về javascript mà populates trang của họ với dữ liệu (nó là một widget). Tôi đang cố gắng đặt cookie bằng tên miền = ". Mydomain.com" và path = "/". Nó hoạt động cho Firefox, nhưng sẽ không hoạt động trong IE. Nó hoạt động tốt trong IE nếu tôi kiểm tra cuộc gọi javascript từ miền của riêng tôi.

Có ai biết cách đặt thiết lập cookie tên miền chéo để hoạt động trong IE, sử dụng Rails không?

Trả lời

9

Chừng nào máy chủ của bạn là thiết lập một cookie trong miền riêng của mình hoặc từ một tên miền phụ của phạm vi của nó, điều này sẽ làm việc

cookies[cookie_name] = { 
    :value => 'a value', 
    :expires => 1.year.from_now, 
    :domain => 'example.com' 
} 

Nó sẽ không làm việc cho bất kỳ lĩnh vực khác.

Để có được điều này để làm việc trong IE6 bạn có thể cần một tiêu đề chính sách P3P hợp lệ

Something như thế này gửi như một tiêu đề nên làm điều đó:

headers["p3p"] = 'CP="CAO PSA OUR"' 
+0

mà là làm thế nào tôi đặt nó: cookie [cookie_name ] = {: value => 'x',: expires => 1.day.from_now,: domain => '.mydomain.com'} Và có, nó hoạt động cho firefox. Tôi thực sự nghĩ rằng nó sẽ không nhưng nó. Nhưng trong IE, tôi thấy nó cố gắng đặt tiêu đề nhưng cookie không có ở đó sau khi tải trang của họ. – Zack

+0

Làm thế nào để bạn biết? Bạn có thể đăng mã của bạn mà nói với bạn rằng cookie không có ở đó? – DanSingerman

+0

Tôi đang sử dụng Fidler để xem các cuộc gọi đến miền của tôi và xem các phản hồi tiêu đề. Tôi đang sử dụng thanh công cụ của IE Developer để xem các cookie trên trang của tôi (và của họ) nhưng nó không tồn tại. Tôi cũng cố gắng lấy cookie khi tôi quay lại trang web của mình và nó không tồn tại. Trong FF tất cả mọi thứ hoạt động tốt. – Zack

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