2017-09-14 35 views
0

我對站點A在頁面上部署作爲一個快速和簡單的方式來顯示別處站點A從複雜的頁面片段顯示頁面<iframe>不是來自同一個網站上顯示的頁面,而是從其他網站

<iframe src="http://site-a.com/complex-page/"></iframe> 

沒有顯示在上站點A

故障排除:

  1. 我在瀏覽器頁面顯示正常檢查http://site-a.com/complex-page/
  2. 我測試時使用http://site-b.com/complex-page/作爲源和顯示外部頁面(外部)站點B,如預期。
  3. 我使用http://site-a.com/complex-page-2/作爲源測試了,並且再次在中沒有任何顯示。

所以......這顯然是與站點A,如果站點A的不上網站顯示任何若干頁卻是露出任何的若干頁網站B

這顯然不是一個同源問題 - 站點A相同的來源站點A

那麼什麼是阻止顯示外部網頁網站A

此外:

如果我Right Click > This Frame > View Frame Source然後我可以看到由加載的文件的HTML源代碼...但無論內容還是風格我添加到文檔中,沒有顯示。

這表明正在成功訪問該頁面,但之後(出於某種原因)未能顯示它。


支持信息:該網站是建立與PHP服務器端,並與HTML5,CSS3和JavaScript客戶端。

+0

啊哈。進展。我剛剛在Firefox Developer Tools> Console> JS'上發現了這個...:_Load被X-Frame-Options拒絕:'http:// site-a.com/complex-page /'不允許成幀。 _ – Rounin

+0

我剛剛嘗試在源頁面的「」中插入'',但這不起作用。 – Rounin

+0

您是否爲iFrame定義了寬度和高度? – Johannes

回答

1

一旦我明白我面臨的是X-Frame-Options問題,這個問題稍微容易解決。

顯然X-Frame-Options可以具有三個值:

  • DENY
  • SAMEORIGIN
  • ALLOW-FROM [URI]

X-Frame-Options可以在.htaccess文件使用任何上面的三個值中的被設置。

在這種情況下,我需要添加以下行.htaccess文件:

# HEADERS 
<ifModule mod_headers.c> 
Header set X-Frame-Options "SAMEORIGIN" 
</ifModule> 

由於此頁:

[I幀] X框選項:網站不允許取景

http://techdc.blogspot.co.uk/2015/04/iframe-x-frame-options-website-does-not.html

+0

另請注意,Google Chrome不接受X-Frame-Options標頭。您必須配置內容安全策略 –

+0

我剛剛在Chrome 60中測試了該頁面,並且它工作正常(現在)。謝謝你的提醒。我會記住它。 – Rounin

相關問題