2012-10-18 8 views
8

У меня проблема с настройкой файлов cookie в iframe (который загружает сайт из другого домена).
На моем сайте X.com загружает <iframe src='Y.COM'>Периферийные файлы cookie в iframe Safari

Y.COM пытается установить кук, но Safari блокирует их, так как этот сайт не посещал раньше. Поэтому загрузка Y.COM терпит неудачу, потому что она не может работать без файлов cookie. Есть ли способ решить эту проблему?

P.S. Я не могу изменять любые данные на Y.COM.

P.S.S. Также мы можем изменить настройки Safari - "Accept cookies" = "Always", но это не для меня решение - кажется, невозможно заставить каждого пользователя сделать это.

+0

Я думаю, что точка блокировки заключается в том, что он не должен работать. Создание обходного пути будет нарушать доверие пользователей. –

+0

Итак, кто-то пойдет на ваш сайт, а страница с вашего сайта будет загружать страницу на другом сайте. И она будет передавать файлы cookie на сайт, который пользователь никогда не запрашивал? Надеюсь, Safari и все остальные блокируют это. –

+1

@JamesMohler, я не верю, что он говорит, что X.COM * отправляет * файлы cookie на Y.COM, только для того, чтобы Y.COM требовал, чтобы файлы cookie функционировали, и когда они загружаются в iframe, они не могут их установить. –

ответ

4

Я экспериментировал с аналогичной проблемой. Веб-страница «родительский» открывает мой «дочерний» веб-сайт в междоменном фреймворке jQuery fancybox i-frame. Не проблема вообще с Explorer, Chrome, Firefox, Opera и даже с Safari (5.8.1) на MAC. Но с iPhone, iPad и мини-iPad сессия в i-кадре теряется.

Это означает, что при каждом нажатии на элемент в i-кадре (веб-сайт находится в aspx) начинается новый сеанс.

Мы решаем эту проблему очень просто:

когда начало родительского сайта, его называют страницу в дочернем сайте напрямую (а не в I-кадре). На этой странице я просто установил переменную сеанса, и я перенаправляюсь на родительский веб-сайт. Теперь, когда дочерний сайт открыт в iframe, сеанс сохраняется.

+0

Работает как шарм. Я отобразил ссылку на моей iframed странице, например ''. Затем сразу же щелкните его с помощью JS: '$ ('a') [0] .click()'. Затем маршрут на моем сервере '/ path/to/redirect_with_session' просто устанавливает флаг сеанса' session ['_ ready'] = true', а затем перенаправляется обратно на 'params [: to]'. Затем я могу решить, следует ли выполнять этот поток перенаправления только в том случае, если это сафари, а сеанс еще не инициализирован. – colllin

Смежные вопросы