40

スクリプトが別のオリジンからフレームにアクセスしようとすると、Chrome はそれをブロックし、次のように例外をスローします。

「Uncaught SecurityError: 発信元 'プロバイダー ドメイン' のフレームが発信元 'mydomain' のフレームにアクセスすることをブロックしました。プロトコル、ドメイン、およびポートは一致する必要があります」.

Google Chrome を更新した後、このエラーが発生しました。助言がありますか?

4

2 に答える 2

24

フレームやウィンドウ間で直接 Javascript を呼び出すことは、同一生成元ポリシーに準拠している場合にのみ許可されます。ウィンドウと iframe が共通の親ドメインを共有している場合は、どちらか一方または両方が通信できるように、document.domain" domain lower ") に設定できます。それ以外の場合は、 postMessage() APIなどを調べる必要があります。

于 2013-11-07T13:40:49.100 に答える
5

これはセキュリティ更新プログラムです。攻撃者が Web サーバー内のファイル (たとえば、JS ファイル) を変更できる場合、ロードされたすべてのページに別のスクリプトをダウンロードさせることができます (たとえば、パスワードをキーログに記録したり、SessionID を盗んで自分のサーバーに送信したりするため)。

それを避けるために、ブラウザはSame-originポリシーをチェックします

あなたの問題は、ブラウザーが別のドメイン (またはサブドメイン) にあるスクリプト (Ajax 要求を使用) で何かを読み込もうとしていることです。それを回避するには (自分の Web サイトにある場合)、次のことができます。

  • 独自のサーバーに要素をコピーします (ただし、静的になります)。
  • Cross-Origin コンテンツを受け入れるように HTTP ヘッダーを変更できます。詳細については、Access-Control-Allow-Origin のドキュメントを参照してください。
于 2013-11-07T15:07:28.073 に答える