Missing cookies on iframe in safari 5.1.5

2019-01-25 01:17发布

问题:

This is for Safari 5.1.4 and 5.1.5 only. It works on older Safari versions.

if you go to: http://gemal.dk/test/restob.html and click on the button you get a Online Booking inside a iframe

If you the click on a green day and then a time you are presented with a "Your session has expired".

If you check the cookies you dont have any cookies.

Safari is rejecting the session cookies and this started around the Safari/Google issue where Safari became more strict about 3rd party cookies. Version 5.1.4+

How can I solve this? How can I set the cookies in the iframe?

I send the correct P3P headers. I've tried a lot of things I just cant get it working.

It works in all other browsers than Safari 5.1.4+

回答1:

Maybe ,The following link would be helpful to you .

http://www.reizbombardement.de/archives/safari-5-1-4-enforces-cookie-policy

Safari 3rd party cookie iframe trick no longer working?

Certainly, To set a cookie for your domain and refresh the opener and then closes, you must prepare dummy page(ex...safari_cookie_fix.php)

But... In Our project , We prepare its dummy page as Good-looking(Not bad usability!) loading page.



回答2:

I experimented a similar problem. A web "parent" page open my "child" website in a jquery fancybox i-frame cross-domain. Not problem at all with Explorer, Chrome, Firefox, Opera and even with Safari (5.8.1) on MAC. But with iPhone, iPad and mini iPad, the session in the i-frame is lost.

That's mean that at every click on an element in the i-frame (web site is in aspx) a new session started.

We solve the problem in a very simple way:

when the parent website start, it call a page in the child site directly (not in an i-frame). In this page I just set a session variable and I redirect to the parent website. Now when the child website is open in an iframe, the session is kept.