リダイレクト後にクロスドメインiframeの新しいURLを見つけることは可能ですか?
-
03-07-2019 - |
質問
サイトの別のサブドメインにあるアプリケーションのログインフォームに投稿しようとしています。ソースへのアクセス権がないサードパーティのアプリです。
同じオリジンポリシーのため、クロスドメインiframeのほとんどの機能にアクセスできないことを知っています。ただし、アクセスする必要があるのは、iframe内で(JavaScriptを介して)リダイレクトされたURLだけです。通過させたいセッショントークンがあります。
それは許可されるのに十分安全なもののように思えますが、私はまだそれを行う方法を見つけていません。私はjQueryを使用しており、 $( 'iframe')。contents()
を試しましたが、そのオブジェクトに対するアクセス許可がまったくないようです。 $( 'iframe')。attr( 'src')
もチェックしましたが、リダイレクト前のURLのままです。別の方法はありますか?
解決
いいえ、iframe内の any プロパティにはアクセスできません。外側の配置とスタイルのプロパティにのみアクセスできます。
これが、フレームを扱うのに苦労する理由です。私は通常、それらの中で何が行われるか気にしない場合にのみそれらを使用します。
サーバー側の認証とトークンの受け渡しはできませんか?クライアントに認証を行わせる代わりに、サーバーでそれを行うことはできませんか? HTTPリクエストを作成してレスポンスを解析するために追加の作業が必要になる場合がありますが、iframeの問題は避けます。
一番下の行は、iframeが認証などの重要なことに(特にクロスブラウザ機能に関して)依存するのに最適ではない可能性があることです。
他のヒント
この例(方法2)で、作成者が別のiframeをセットアップする最初に、元のドメインでページをロードします。 内側のページは、同じドメインにロードされるため、外側の親でjavascriptを呼び出すことができます。 親に渡すことができる適切なパラメーターを使用して、内部ページをロードするだけです。