2015-08-13 2 views
-2

Мы пытаемся встроить эту страницу Reddit (https://www.reddit.com/live/veh2e41lp0he) в iFrame, но она выглядит пустой. Мы думали, что будет аккуратно размещать чат реального времени на верхней части страницы, но это кажется невозможным без использования расширения или принуждения пользователей к загрузке чего-либо.Возможно показать содержимое HTTPS в iFrame?

Вот HTTP JSFiddle: http://jsfiddle.net/sjvcs165/, который работает с CNN.com и ESPN.com.

<iframe src="https://www.reddit.com/"></iframe> 

html { 
    height: 100%; 
} 
body { 
    height: 100%; 
    min-height: 100%; 
    position: relative; 
} 

iframe { width: 100%; height: 100%; min-height: 100%; } 

Вот HTTPS JSFiddle: https://jsfiddle.net/zzkpdxue/, который содержит тот же самый код, но происходит от страницы HTTPS, который мы думали бы решить эту проблему. Он также не отображает содержимое HTTPS.

Невозможно показать содержимое HTTPS в iFrame? Не являются ли объявления, представленные в качестве защищенного контента, иногда подаются на HTTPS-страницах через iFrames?

+3

Откройте ваш браузер консоль (F12) в Chrome, ваше манящее состояния «Отказался для отображения„https://www.youtube.com/“в кадре потому что он установил «X-Frame-Options» в «SAMEORIGIN» »- Youtube решил заблокировать iFrames – temporalslide

+0

@TemporalSlide Lol именно так, что я собирался сказать. Я просто набрал его в ответ haha ​​ –

+0

Дубликат http://stackoverflow.com/questions/18136803/ajax-and-youtube-x-frame-options-to-sameorigin, который имеет возможное обходное решение (не уверен, подойдет вам, но выглядит скорее). Похоже на то же решение из этого другого дубликата http://stackoverflow.com/questions/9934944/embedding-youtube-video-refused-to-display-document-because-display-forbidden-b. Так много других там тоже, даже беглый поиск показал бы это для вас. Я также нашел это интересным, если вы хотите понять немного больше боя, почему: http://coderissues.com/questions/20346576/same-origin-policy –

ответ

1

Если вы откроете инструменты разработчика (Chrome или FF), вы увидите, есть ошибка:

Console from Google Chrome

Refused to display 'https://www.youtube.com/' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'. Refused to display 'https://www.reddit.com/live/veh2e41lp0he' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'

Если посмотреть дальше в этом здесь on stackoverflow вы бы увидели что есть заголовок, который предотвращает загрузку iframe.

По существу, на другом сайте (Youtube или Reddit) запрещено загружать контент из любого другого источника, кроме собственного веб-сайта. Чтобы получить контент, вам нужно будет просмотреть его с помощью запроса AJAX или CURL.

0

Ошибка:

Refused to display 'https://www.reddit.com/live/veh2e41lp0he' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'. 

Резон: reddit.com HTTP headder 'X-Frame-Options' не позволяет загружать в Iframe из другого происхождения.

Solutions: использование CURL для чтения страницы,

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