私が達成しようとしているのは、次のことを行う ajax を使用したインライン ログインです。
セキュリティで保護されていない HTTP ページにログイン リンクが表示されます。「http://www.somedomain.com/somepage/」としましょう。ここではログイン情報は収集されません。
ログイン リンクをクリックすると、「 https://www.somedomain.com/rest_api/values/」 を指す src を持つ iframe が作成されます。これは、HTTPS 経由でログイン フォームが最初に表示される場所です。
新しい iframe ポップアップ内で、HTTPS 経由でロードされた安全なログイン フォームがユーザーに表示されます。ユーザーはフォームに入力し、続けてクリックすると、自分自身にポストされます。
ユーザーが正常にログインしたと仮定する
window.parent.document
と、現在のユーザー ウィジェットで元のページを更新し、破棄する iframe を呼び出すスクリプトを介してアクセス可能なスクリプトに対して jquery 呼び出しが行われます。
これは、iframe に同じドメインとプロトコルを強制的に使用させるとうまく機能しますが、HTTP を使用して IFRAME に HTTPS でログイン スクリプトを強制的にロードさせるとすぐに、恐ろしい「プロパティ 'ドキュメント' へのアクセス許可が拒否されました」というメッセージが表示されます。ログインに成功した後、Firebug で "エラーが発生しました。
ヘッダーを設定する必要があることを理解しているAccess-Control-Allow-Origin
ため、ページがリクエストされているドメインの HTTPS バージョンを使用するように動的に設定されます。元のページ リクエストの Firebug のヘッダー レスポンスでこれを確認しました。
それでもエラーが発生するのはなぜですか。応答ヘッダーには次のように表示されます。
Access-Control-Allow-Origin: https://www.somedomain.com
他に設定する必要があるものはありますか、それとも問題はおそらく別の場所にありますか?
助けてくれてありがとう!
編集:私は愚かではなく、ログインフォームが実際に安全にロードされていることを指摘するために上記を更新しました;)