iframe Safari中的跨域cookie

And*_*nko 10 iphone cookies safari iframe cross-domain

我在iframe(从另一个域加载网站)中设置cookie时遇到问题.
在我的网站X.COM上我加载<iframe src='Y.COM'>

Y.COM尝试设置cookie,但Safari会阻止它们,因为之前没有访问过这个站点.因此加载Y.COM失败,因为它没有cookie就无法工作.有没有办法解决这个问题?

PS我无法在Y.COM修改任何数据.

PSS我们也可以修改Safari的设置 - "Accept cookies" = "Always"但它不是我的解决方案 - 似乎不可能引导每个用户这样做..

Alb*_*rto 4

我尝试了类似的问题。Web“父”页面在 jquery fancybox i-frame 跨域中打开我的“子”网站。对于 Explorer、Chrome、Firefox、Opera 甚至 MAC 上的 Safari (5.8.1) 都没有问题。但对于 iPhone、iPad 和 mini iPad,i 框架中的会话会丢失。

这意味着每次单击 i-frame 中的元素(网站采用 aspx 格式)都会启动一个新会话。

我们用一个非常简单的方法来解决这个问题:

当父网站启动时,它直接调用子网站中的页面(而不是在 i-frame 中)。在此页面中,我只是设置了一个会话变量,然后重定向到父网站。现在,当子网站在 iframe 中打开时,会话将被保留。

  • 奇迹般有效。我在 iframe 页面中呈现了一个链接,例如 `&lt;a href="/path/to/redirect_with_session?to=&lt;%= request.referrer %&gt;" target="_top" style="display:none;"&gt;&lt;/一个&gt;`。然后立即用JS点击它:`$('a')[0].click()`。然后我的服务器上的路由 `/path/to/redirect_with_session` 只需设置一个会话标志 `session['_ready'] = true`,然后重定向回 `params[:to]`。然后我可以决定是否仅在 safari 且会话尚未初始化时执行此重定向流程。 (2认同)