Я считаю, что это не работает:
<iframe src="http://www.yahoo.com"> </iframe>
Я прочитал этот вопрос , но я не понимаю, что они означают, добавив:
<?php header('X-Frame-Options: GOFORIT'); ?>
Я попытался добавить это в верхнюю часть моего html-файла (конечно, изменил его на php-файл), и мой php-файл стал:
<?php header('X-Frame-Options: GOFORIT'); ?> <iframe src="http://www.yahoo.com"> </iframe>
Я запускаю его в своем appserv (с php 5.2.6), и он не работает. Может ли кто-нибудь объяснить, что я должен сделать, чтобы преодолеть это?
Вам не повезло: yahoo.com не позволяет вам встраивать свой сайт в iframe. Также не существует Facebook или других популярных сайтов.
Причиной этого ограничения является щелчок мышью .
Вы можете проверить это, проверив заголовки ответов со своего сайта; они указывают X-Frame-Options:SAMEORIGIN
что означает, что только yahoo.com может вставлять страницы yahoo.com.
Некоторые старые браузеры не будут использовать заголовок, но все новые будут. Afaik, нет простого способа обойти это.
Единственное решение, о котором я могу думать, – это реализовать прокси-скрипт, то есть вы встраиваете сценарий, который живет на вашем сервере, который извлекает удаленный контент для вас.
Например. ваш iframe называет «/my-proxy.php?url= http://www.yahoo.com/ », и этот скрипт будет выглядеть так:
<?php header('X-Frame-Options: SAMEORIGIN'); // don't allow other sites to use my proxy echo file_get_contents($_GET['url']);
Ваш пробег может варьироваться …
У вас проблемы с совместным использованием ресурсов Cross-origin. Ознакомьтесь с этими статьями в Википедии CORS и MDN CORS .
Что касается вашего фрагмента,
<?php header('X-Frame-Options: GOFORIT'); ?>
необходимо добавить на страницу, которая будет подана, а не на страницу / код, запрашивающий ее, что в этом случае будет yahoo.com
. Но, поскольку вы не используете yahoo.com
самостоятельно, нет способа добавить его.
Однако, если вопрос касался ваших собственных страниц, а yahoo.com
был всего лишь примером, вы можете просто установить правильные заголовки HTTP, как указано в статьях, и вы были бы хороши.
Некоторые веб-сайты, такие как google, yahoo, отключили внедрение iframe для своего сайта. Если вы хотите это сделать, возьмите их html с помощью curl или file_get_conents на стороне сервера и покажите его.
проверьте заголовок HTTP-ответа X-Frame-Option. Я думаю, что для yahoo это должно быть отрицание или sameorigin, что означает, что только страница yahoo может вставлять свои другие страницы в iframe
Добавьте плагин « Игнорировать X-Frame headers » в goorge chorme, тогда он отлично работает.