【发布时间】:2012-06-06 03:29:00
【问题描述】:
问题:
我在将会话变量从父页面传递到 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 $.get() 向我的 CRM Web 服务文件发出请求。 webservice.php 接收请求,然后使用$_SESSION['WPUsername'] 会话变量在内部查询适当的数据并返回响应。
问题:
Firefox 运行良好。当webservice.php 请求时,IE 和 Chrome 似乎认为$_SESSION['WPUsername'] 不存在。
我错过了什么?
【问题讨论】:
-
请注意...除了在同一个域上之外,所有内容都在同一台服务器上。
-
另一个停止使用 (i)frames 的好理由。
-
大型项目的临时解决方案,将取消 iFrames。
-
实际上是 PHP 无法识别会话变量。如果我不得不猜测,您的会话 cookie 仅限于您网站中的某个路径,不会传递到其他子目录。
-
@NickCaballero 你的评论绝对是无稽之谈。
标签: php internet-explorer session google-chrome