1

问题:

我在将会话变量从父页面传递到 iFrame 页面以及在 Chrome 和 IE 中调用 PHP 文件的 AJAX 时遇到问题。不过,它似乎在 FF 和 Safari 中有效。

环境:

我有 Wordpress 作为我的“门户”。我的 Wordpress 页面之一是“仪表板”。该仪表板针对 CRM Web 服务发出 AJAX 请求以呈现 JSON 数据。Wordpress、仪表板文件和 CRM 都在同一个域中。“www.domain.com/wordpress”是 Wordpress 域,“www.domain.com/dashboard/dashboard.php”是通过 iFrame 包含在 Wordpress 页面上的仪表板文件,“www.domain.com/CRM” /webservice.php" 是我正在对其进行 AJAX 调用的 Web 服务文件。

方法:

用户使用 LDAP 登录 Wordpress。我从 Wordpress 中获取用户名并将其转储到一个$_SESSION['WPUsername']变量中,作为 Wordpress 登录功能的扩展。然后,当我的仪表板加载到 iFrame 中时,它会通过 jQuery 向我的 CRM Web 服务文件发出请求$.get()。接收请求,然后webservice.php使用$_SESSION['WPUsername']会话变量在内部查询适当的数据并返回响应。

问题:

火狐工作正常。$_SESSION['WPUsername']IE 和Chrome似乎认为webservice.php.

我错过了什么?

4

1 回答 1

0

我对我的 PHP 配置和网站进行了所有建议的更改。我将 php.ini 中的 cookie 路径设置为“/”,并在 iFrame 中使用了完整的子域路径(“www.domain.com/dashboard/dashboard.php”)。现在似乎工作正常。

另一方面,我刚刚使用 OpenAM 作为 IdP,SimpleSAMLphp 作为 SP 实现了 SSO。不再需要会话 cookie 来管理身份验证,组件之间传递的所有数据现在都使用 Web 服务完成。

于 2012-06-29T17:43:01.497 回答