2012-10-18 21 views
8

Bir iframe'de (başka bir etki alanından bir site yükleyen) çerezleri ayarlamakta sorun yaşıyorum. Sitem X.COM günü
ben <iframe src='Y.COM'>iframe Safari'de etki alanları arası çerezler

Y.COM çerezleri belirlemeye çalıştığını yük, ancak Safari bloklar onlar bu site önce ziyaret gibi oldu. Yani Y.COM yükleniyor, çünkü çerez olmadan çalışamaz. Bu sorunu çözmenin bir yolu var mı?

P.S. Y.COM'daki herhangi bir veriyi değiştiremiyorum.

P.S.S. Ayrıca Safari'nin ayarlarını değiştirebiliriz - "Accept cookies" = "Always", ama bu benim için bir çözüm değil - her kullanıcının bunu yapmasını sağlamak imkansız gibi görünüyor ..

+0

Sanırım engelleme noktası çalışmaması gerektiğidir. Bir geçici çözüm oluşturmak, kullanıcıların güvenini ihlal ediyor olabilir. –

+0

Birisi sitenize gidip sitenizden bir sayfa diğer siteye bir sayfa yükler ve kullanıcının istediği siteye çerezler aktarır mı? Umarım Safari ve diğer her şey budur. –

+1

@JamesMohler, X.COM * 'un Y.COM'a * çerezleri gönderdiğine inandığını, sadece Y.COM'un çerezlerin çalışmasını gerektirdiğini ve iframe'e yüklendiğinde bunları ayarlayamadığını söylediğine inanmıyorum. –

cevap

4

Benzer bir problem denedim. Bir web "ebeveyn" sayfası "çocuk" web sitemi bir jquery fancybox i-frame çapraz alanında açar. Explorer, Chrome, Firefox, Opera ve hatta Safari'de Safari (5.8.1) ile hiç sorun değil. Ancak iPhone, iPad ve mini iPad ile i-frame'deki oturumlar kayboluyor.

Bu, i çerçevesindeki bir öğeye yapılan her tıklamanın (web sitesi aspx'te) yeni bir oturum başlatıldığı anlamına gelir.

Biz çok basit bir şekilde sorunu çözmek:

ebeveyn web sitesi başlangıç, bu (değil bir i-çerçeve içinde) doğrudan çocuk sitesinde sayfanın çağırdığınızda. Bu sayfada sadece bir oturum değişkeni ayarlıyorum ve ana siteye yönlendiriyorum. Artık çocuk web sitesi bir iframe içinde açık olduğunda, oturum tutulur.

+0

Bir çekicilik gibi çalışır. Iframe sayfamda '' gibi bir bağlantı oluşturdum. Sonra hemen JS: '$ ('a') [0] .click()' ile tıklayın. Daha sonra sunucumdaki '/ path/to/redirect_with_session'daki rota basitçe bir session flag' session ['_ ready'] = true' ayarlıyor, daha sonra 'params [: to]' a yeniden yönlendiriyor. Daha sonra bu yönlendirme akışını yalnızca safari ve oturum zaten başlatılmamışsa yapmaya karar verebilirim. – colllin