2012-10-18 44 views
8

Tôi gặp sự cố khi đặt cookie trong khung nội tuyến (tải một trang web từ một tên miền khác).
Trên trang web của tôi X.COM Tôi tải <iframe src='Y.COM'>Tên miền chéo trong iframe Safari

Y.COM cố gắng đặt cookie, nhưng Safari chặn chúng, vì trang này chưa được truy cập trước đó. Vì vậy, tải Y.COM không thành công vì nó không thể làm việc mà không có cookie. Có cách nào để giải quyết vấn đề này không?

P.S. Tôi không thể sửa đổi bất kỳ dữ liệu nào tại Y.COM.

P.S.S. Ngoài ra chúng tôi có thể sửa đổi cài đặt của Safari - "Accept cookies" = "Always", nhưng nó không phải là giải pháp cho tôi - có vẻ như không thể dẫn mọi người dùng làm điều đó ..

+0

Tôi nghĩ rằng điểm chặn nó là nó không hoạt động. Việc tạo một giải pháp thay thế sẽ vi phạm niềm tin của người dùng. –

+0

Vì vậy, ai đó sẽ truy cập trang web của bạn và một trang từ trang web của bạn sẽ tải một trang trên trang web khác VÀ nó sẽ chuyển cookie đến trang web mà người dùng không bao giờ yêu cầu? Tôi hy vọng Safari và mọi khối khác cũng vậy. –

+1

@ JamesMohler, tôi không tin rằng anh ấy nói X.COM * gửi * cookie cho Y.COM, chỉ Y.COM yêu cầu cookie để hoạt động và khi được tải trong khung nội tuyến thì không thể đặt chúng. –

Trả lời

4

Tôi đã thử nghiệm một vấn đề tương tự. Trang web "cha mẹ" mở trang web "con" của tôi trong một tên miền chéo i-frame jquery fancybox. Không có vấn đề gì với Explorer, Chrome, Firefox, Opera và thậm chí cả với Safari (5.8.1) trên MAC. Nhưng với iPhone, iPad và iPad mini, phiên trong khung i bị mất.

Điều đó có nghĩa là mỗi lần nhấp vào một phần tử trong i-frame (trang web nằm trong aspx) một phiên mới bắt đầu.

Chúng tôi giải quyết vấn đề một cách rất đơn giản:

khi bắt đầu trang web phụ huynh, nó gọi một trang trong trang web con trực tiếp (không phải trong một i-frame). Trong trang này, tôi chỉ đặt biến phiên và tôi chuyển hướng đến trang web chính. Bây giờ khi trang web con đang mở trong iframe, phiên được giữ lại.

+0

Hoạt động như một sự quyến rũ. Tôi đưa ra một liên kết trong trang iframed của tôi, như ' '. Sau đó ngay lập tức nhấp vào nó với JS: '$ ('a') [0] .click()'. Sau đó, tuyến đường trên máy chủ của tôi '/ path/to/redirect_with_session' chỉ cần đặt cờ phiên' phiên ['_ ready'] = true', sau đó chuyển hướng trở lại 'params [: to]'. Sau đó, tôi có thể quyết định có nên thực hiện luồng chuyển hướng này chỉ khi nó là safari và phiên chưa được khởi tạo. – colllin

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