Google Apps ScriptのJavascriptを使用して動的に作成されたページをiFrameのウェブサイトに埋め込もうとしていますが、iFrameのコンテンツが表示されません。 Google Apps Scriptには同一生成元ポリシーがあり、読み込みを禁止しています。
私がやろうとしていることは(私は完全なリンクを削除しました):
<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に読み込む方法はありますか?
Googleは最近この機能を有効にしました。それはかなり長い間「機能要求」ステータスの下にありました。 ここにリンク
X-Frame-Optionsを明示的に定義できるようになりました。
別のドメインでの埋め込みを許可するには、オプションをHtmlService.XFrameOptionsMode.ALLOWALLにする必要があります
この件に関するGoogleのドキュメント:
例:
function doGet() {
return HtmlService.createTemplateFromFile('form.html')
.evaluate() // evaluate MUST come before setting the Sandbox mode
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
お役に立てれば!
この問題は、開発モードでのみdoPost応答フォームで発生し、最初のdoGetフォームでtarget = "_self"をtarget = "_top"に変更することで修正しました。
<form method="POST" id="ss-form" target="_top" action="<?!=SETTINGS.PUBLISHED_URL?>">