2016-11-28 216 views
5

我試圖將在Google Apps腳本中使用JavaScript動態構建的頁面嵌入到iFrame的我的網站中,但未顯示iFrame的內容。 Google Apps腳本具有防止加載的同源策略。將Google Apps腳本嵌入到iFrame中

(我刪除了完整鏈接),我所要做的是:

<iframe src="https://script.google.com/a/macros/SCRIPT_ID"></iframe> 

我得到的錯誤是:

Refused to display 'https://script.google.com/a/macros/SCRIPT_ID' 
in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'. 

有沒有辦法改變政策和負載iFrame中的內容?

回答

8

Google剛剛啓用了此功能。相當長時間以來,它一直處於「功能要求」狀態。 Link here

您現在可以明確定義X-Frame-Options。

要允許下另一個域嵌入,該選項應該是HtmlService.XFrameOptionsMode.ALLOWALL

關於這個問題

谷歌文檔:

https://developers.google.com/apps-script/reference/html/html-output#setXFrameOptionsMode(XFrameOptionsMode)

例子:

function doGet() { 
    return HtmlService.createTemplateFromFile('form.html') 
     .evaluate() // evaluate MUST come before setting the Sandbox mode 
     .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); 
} 

希望這幫助!

+2

非常感謝!有效! – Technotronic

+2

也適合我! –

0

我在doPost響應表單上只有在開發模式下才有這個問題,並且通過在初始doGet表單上將target =「_ self」更改爲target =「_ top」進行了更正。

<form method="POST" id="ss-form" target="_top" action="<?!=SETTINGS.PUBLISHED_URL?>">