1

質問:

ChromeとIEでPHPファイルと呼ばれる親ページからiFrameページおよびAJAXにセッション変数を渡す際に問題が発生します。ただし、FFとSafariでは機能するようです。

環境:

私は「ポータル」としてWordpressを持っています。私のWordpressページの1つは「ダッシュボード」です。そのダッシュボードは、JSONデータをレンダリングするためにCRMWebサービスに対してAJAXリクエストを行います。Wordpress、ダッシュボードファイル、CRMはすべて同じドメインにあります。「www.domain.com/wordpress」はWor​​dpressドメイン、「www.domain.com/dashboard/dashboard.php」はWor​​dpressページのiFrameを介して含まれるダッシュボードファイル、「www.domain.com/CRM」です。 /webservice.php "は、AJAX呼び出しを行うWebサービスファイルです。

アプローチ:

ユーザーはLDAPを使用してWordpressにログインします。Wordpressからユーザー名を取得し、$_SESSION['WPUsername']Wordpressのログイン関数の拡張機能として変数にダンプします。次に、ダッシュボードがiFrameに読み込まれると、jQueryを介してCRMWebサービスファイルにリクエストを送信します$.get()。はwebservice.phpリクエストを受信し、$_SESSION['WPUsername']セッション変数を使用して適切なデータを内部的にクエリし、レスポンスを返します。

問題:

Firefoxは正常に動作しています。IEとChromeは、$_SESSION['WPUsername']によって要求されたときには存在しないと考えているようですwebservice.php

私は何が欠けていますか?

4

1 に答える 1

0

PHP 構成と Web サイトに対して、推奨されるすべての変更を加えました。php.ini の Cookie パスを「/」に設定し、iFrame で完全なサブドメイン パス (「www.domain.com/dashboard/dashboard.php」) を使用しました。今はうまくいっているようです。

別のメモとして、OpenAM を IdP として使用し、SimpleSAMLphp を SP として使用して SSO を実装しました。認証を管理するためのセッション Cookie は不要になり、コンポーネント間で渡されるすべてのデータは Web サービスを使用して処理されるようになりました。

于 2012-06-29T17:43:01.497 に答える