2014-12-22 4 views
0

Я использую IFRAME, как показано ниже:IFrame на Safari: Не удалось загрузить ресурс

<iframe src="http://www.expedia.com/Hotel-Search?#&destination=Abbotsford,%20British%20Columbia,%20Canada&startDate=12/29/2014&endDate=1/3/2015&adults=2" frameborder="0" width="900px" height="900px"></iframe> 

Он хорошо работает на хром и Firefox, даже IE. Но на сафари, это не получится, я открываю журнал и вижу:

[Error] Failed to load resource: the server responded with a status of 400 (Bad Request) (Hotel-Search, line 0) http://www.expedia.com/Hotel-Search?inpAjax=true&responsive=true 

Но когда я доступ к этому URL непосредственно в новой вкладке, после этого возвращения на IFrame страницы и обновите страницу, она работает нормально без ошибок. Если я очищу страницу истории и обновления, iframe снова будет ошибкой. В чем причина? и не могли бы вы дать какое-либо решение?

+0

Это потому, что session_start() в PHP на Expedia. Safari и IE не любят использовать iframing url с установленными cookie сеансов. Вот работа: http://www.mendoweb.be/blog/internet-explorer-safari-third-party-cookie-problem/ –

ответ

1

Проще говоря, когда вы скопируете и вставьте ссылку в URL-адрес на другой вкладке и загрузите страницу expedia, она запустит вашу сессию с помощью Expedia и установит ее в вашем браузере ... Затем, когда вы начали сеанс с Expedia iframe будет работать, потому что теперь у вас есть сеанс с Expedia. Поэтому, если вы не пошли на сайт сначала, чтобы получить сеанс, iframe в Safari и IE не будут работать. Причина, по которой они блокируют его, заключается в защите от атак с межсайтовыми сценариями, которые могут представлять угрозу безопасности.