2017-07-31 8 views
0

ラムダ関数のバックエンドを使用してAWS apigatewayを使用して簡単なウェブサイトを設定しました。AWS apigatewayタグとiframeタグ

apigatewayは、正しく動作している 'text/html' Content-Typeを返すように設定されています。

私の最近の開発では、別の(アマゾン以外の)ドメインのコンテンツを埋め込むためにサイトに「iframe」タグを追加しています。

ページがブラウザでレンダリングされるとき、iframeによって参照されるコンテンツは表示されません。それでも、htmlをローカルに保存してブラウザで開くと、iframeの内容が表示されます。これはhtmlコードが正常であることを証明します。

AWSには、他のドメインの埋め込みコンテンツをブロックするセキュリティがありますか?もしそうなら、私はこれを可能にするために何を変える必要がありますか?

+1

iframeはブラウザによってロードされています。ブラウザはHTMLを読み込み、iframeタグを表示して、iframeが指しているサーバとやりとりします。 AWSは何もブロックしていません。私の推測では、iframeのコンテンツをロードしようとしているサーバーが、次のようにブロックしています。https://stackoverflow.com/questions/38068019/load-another-domain-website-in-a-iframeブラウザのデベロッパーツールコンソールを開き、実際のエラーや警告メッセージを取得して、正確な問題の内容を追跡します。 –

+0

はい、埋め込みコンテンツを妨げているブラウザのクロスオリジンセキュリティのようです。 あなたのアドバイスありがとう –

+0

私はこれを回避するために、apigatewayからの応答に以下のヘッダーを設定しました: アクセス制御許可ヘッダー: 'Origin、X-Requested-With、Content-Type、Accept '\t アクセス制御 - 許可 - 起源:' *」\t アクセス制御 - 許可-方法: 'GET、PUT、POST、DELETE、OPTIONS' 私はヘッダが時に応じて正しく設定されていることがわかります私はDevモードでFirefoxを実行しますが、iframeは表示されません。 どのように私は(サーバー側で)これを解決することができますの任意のアイデア? –

答えて

0

埋め込みリンクがhttpを使用していたが、apigatewayが提供しているページがhttpsを使用していたという問題が見つかりました。

Mozillaのドキュメントでは、「混在コンテンツ」と呼ばれています。幸いにも私が埋め込んでいるサイトもhttps上で同じサイトを提供していますので、これを使用するためにURLを修正しました。

ありがとうございました

関連する問題