ホームページ > ウェブフロントエンド > jsチュートリアル > Iframe 使用時の「SecurityError: Blocked Cross-Origin Access」を克服する方法?

Iframe 使用時の「SecurityError: Blocked Cross-Origin Access」を克服する方法?

Barbara Streisand
リリース: 2025-01-01 03:33:09
オリジナル
743 人が閲覧しました

How to Overcome

セキュリティ エラー: クロスオリジン アクセスがブロックされました

iframe を HTML ページに統合し、JavaScript を使用してその要素にアクセスしようとすると、次のエラーが発生する場合があります。

SecurityError: Blocked a frame with origin "http://www.example.com" from accessing a cross-origin frame.
ログイン後にコピー

このエラーは、ブラウザが同一生成元ポリシー (セキュリティ) に準拠していることが原因で発生します。スクリプトがオリジンの異なるフレームにアクセスできないようにするための措置。オリジンには、プロトコル、ホスト名、およびポートが含まれます。

回避策

クロスオリジン スクリプトへの直接アクセスは禁止されていますが、window.postMessage とそれに対応するメッセージ イベントを利用して、オリジン間の通信を確立できます。フレーム:

メインページ:

const frame = document.getElementById('your-frame-id');
frame.contentWindow.postMessage(/*any variable or object here*/, 'https://your-second-site.example');
ログイン後にコピー

Iframe:

window.addEventListener('message', event => {
    // Verify the origin to ensure it's your site
    if (event.origin === 'https://your-first-site.example') {
        // Retrieve data from event.data
        console.log(event.data);
    }
});
ログイン後にコピー

このアプローチにより、フレーム間の双方向通信が可能になります。クロスオリジン メッセージ パッシングは、メイン ページから生成されるポップアップやその他の新しいウィンドウにも適用できます。

以上がIframe 使用時の「SecurityError: Blocked Cross-Origin Access」を克服する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート