他のWebサイトによってログインページがiframeに埋め込まれると、ログインできなくなります(この状況はIEのみに存在します)。主な問題は、セッションを保存できないことです。以下に私個人の解決プロセスを共有します。
今日作成したログインページが別のWebサイトによってiframeに埋め込まれてしまい、ログインできなくなりました(IEのみで発生しました)。
当然、セッションは保存できません。しかし、アドレスバーでログインページを直接開くと、すべてが正常です。おかしいですね。
オンラインで検索しました。多くの人がこの問題について言及していることがわかりました。最後の解決策は、ログイン ページに次のコードを追加することです:
コードは以下のように表示されます。
リーリー
おそらくこの問題は、ログイン ページが JavaScript のロケーション ジャンプを使用していることにも関係していると思われます。しかし、詳細なテスト研究はありません。
詳しい読み方:
今日、Tencent Friends アプリケーションの作業をしていたときに、テスターから、アプリケーションが IE7 で使用できないという作業指示が届きました
。
最初の反応は、セッションが失われたということでした
。
そこで、IE7 の iframe セッション損失の問題をオンラインで検索したところ、次の記事を見つけて問題を解決しました。
昨日、キャンパス内で作成していたタイムダイアリーがついにオンラインになりました。リリース初日には 80 人を超えるユーザーがこのアプリをインストールしましたが、多くのユーザーがアプリを利用できないと報告しました。私はFirefoxで開発していました(学校関係者も復習にFirefoxを使っていたようです) IE7でテストしたところ、ホームページ以外のページが正常に開けませんでした。
インターネットで多くの情報を検索した結果、IE7 にはこのような問題があることがわかりました。ページ内に 1 つ以上の iframe サブページがある場合、サブページでのセッションの作成が成功しない可能性があるため、セッション データを作成できません。他のページと通信できます。学内や 51 のアプリケーションを開発する場合、iframe を使用することを前提とすると、このような問題に遭遇する可能性があります。そして、この問題は IE7 ブラウザーでのみ発生します。Firefox、IE6、Chrome ブラウザーでテストしましたが、問題はありませんでした。
解決策は、session_start を実行する前に、iframe サブページがセッションを作成するときに問題が発生しないように、ブラウザーにセキュリティ レベルを大まかに宣言する次の文をプログラム (PHP 言語を例として挙げます) に追加することです。
header('P3P: CP=”ALL ADM DEV PSAi COM OUR OTRo STP IND ONL”‘);
さらに、your_domain.yourhost.com のように、第 2 レベルのドメイン名にアンダースコアが含まれている場合、セッションの確立と送信時に問題が発生する可能性があることもわかりました。
いくつかの考え:
1) 何年も経った今でも、ブラウザの互換性の問題は完全に解決されておらず、IE ブラウザは依然として開発者に苦痛と苦痛を与えています。
2) アプリケーションをリリースする前に、厳密なブラウザ互換性テストを受ける必要があります。そうしないと、アプリケーションの最初のユーザーが失われる可能性があります。
その他の参考記事:
iframe での jsessionid の失敗によるセッション損失の問題を解決します
http://618119.com/archives/2007/12/19/48.html
ISMP2.1.1インターフェースを実装するにはSsoが必要ですが、ISMPで定義されているインターフェースではiframeなどの埋め込みページでssoインターフェースを呼び出す必要があることが実際に開発中に判明しました。
問題を再現するシナリオは次のとおりです:
1. まずサイトにアクセスします: http://192.168.18.2/test.jsp
test.jsp のコードは次のとおりです: