iframe を使用して、会社の人事部門の Web サイトへのアクセスを部門の Web サイトに追加しています。ユーザーがまだjavascriptパスワードアプリケーションにログインしていない場合を除いて、すべてが機能します。これは Same Origin ポリシーが原因であると読みましたが、うまく対処する方法を見つけることができませんでした。他のサイトの JavaScript をブロックしないようにするために iframe に追加できるコードのスニペットはありますか?
3 に答える
document.domain
両方のページは、相互にスクリプトを作成するために同じものを共有する必要があります。
https://developer.mozilla.org/en/document.domain
https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript
親ページがドメイン「myArea.myCompany.net」の下にあり、iframe の人事ページが「theirArea.myCompany.net」の下にある場合、両方document.domain
を「myCompany.net」に設定すると、相互にスクリプトを作成します。
同じオリジン ポリシーとは、別のドメインからのフレームにアクセスできないことを意味します。それがiframe、またはあなたの上のフレーム、またはウィンドウ内の他の場所です。
目的は、ユーザーを保護することです。どのサイトでも、www.facebook.com を読み込む iframe を追加できます。ログインしている場合は、HTML を読むだけで実名や友達などを抽出できます。これを防ぐために同一オリジンポリシーがあります。
それを回避する方法はありません(存在する場合、それはバグです)。唯一の解決策は、両方のページを同じドメインでホストすることによって問題を回避することです。
IFRAME を使用する必要がありますか? Division の Web サイトから HR サイトにリンクしたり、ポップアップ ウィンドウ内に表示したりできないのはなぜですか。
同一オリジン ポリシーを無効にするコード スニペットはありませんが、CORS (http://en.wikipedia.org/wiki/Cross-origin_resource_sharing) が役立つ可能性があります。
乾杯