问题:
我遇到了将会话变量从父页面传递到iFrame页面以及在Chrome和Linux中称为PHP文件的AJAX的问题。 IE浏览器。它似乎适用于FF和Safari。
环境:
我将Wordpress作为我的“门户”。我的一个Wordpress页面是“仪表板”。该Dashboard针对CRM Web服务发出AJAX请求以呈现JSON数据。 Wordpress,Dashboard文件和CRM都在同一个域中。 “www.domain.com/wordpress”是Wordpress域名,“www.domain.com/dashboard/dashboard.php”是在Wordpress页面上通过iFrame包含的仪表板文件,以及“www.domain.com/CRM” /webservice.php“是我正在进行AJAX调用的Web服务文件。
方法
用户使用LDAP登录Wordpress。我从Wordpress中获取用户名并将其转储到$_SESSION['WPUsername']
变量中,作为Wordpress登录功能的扩展。然后,当我的仪表板加载到iFrame中时,它通过jQuery $.get()
向我的CRM Web服务文件发出请求。 webservice.php
收到请求,然后使用$_SESSION['WPUsername']
会话变量在内部查询相应的数据并返回响应。
问题:
Firefox工作正常。 IE& Chrome似乎认为$_SESSION['WPUsername']
要求时webservice.php
不存在。
我错过了什么?
答案 0 :(得分:0)
我对PHP配置和网站进行了所有建议的更改。我将php.ini中的cookie路径设置为“/”,并在iFrames中使用了完整的子域路径(“www.domain.com/dashboard/dashboard.php”)。现在似乎工作正常。
另一方面,我刚刚使用OpenAM作为IdP和SimpleSAMLphp作为SP实现了SSO。不再需要会话cookie来管理身份验证,现在使用Web服务完成组件之间传递的所有数据。