Web 開発において、親ドキュメントとは起源が異なる場合、開発者は次のような問題に遭遇する可能性があります。エラー:
SecurityError: Blocked a frame with origin "http://www.example.com" from accessing a cross-origin frame.
このエラーは、Web ブラウザによって実装された同一オリジン ポリシーが原因で発生します。
同一生成元ポリシーは、潜在的なセキュリティ脆弱性を防ぐために、スクリプトが生成元が異なる Web サイトのリソースにアクセスすることを制限します。オリジンとは、URL のプロトコル、ホスト名、ポートの組み合わせを指します。
次の例を考えてみましょう:
クロスオリジン フレームへの JavaScript からの直接アクセスは禁止されていますが、交換する回避策はありますdata:
// In the main page: frame.contentWindow.postMessage('message', 'https://your-second-site.example'); // In the iframe: window.addEventListener('message', (event) => { if (event.origin === 'https://your-first-site.example') { console.log(event.data); // Received message } });
同一オリジン ポリシーの無効化は、開発目的で行うことができます。ただし、重大なセキュリティ リスクを引き起こすため、運用環境では決して使用しないでください。さまざまなブラウザでポリシーを無効にするためのリソースへのリンクは次のとおりです:
以上がIFrame にアクセスすると、JavaScript コードで「SecurityError: Blocked a Frame with Origin...」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。