[英]Losing PHP sessions in iFrame with Chrome & IE
题:
我在将会话变量从父页面传递到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”是Dashboard文件,该文件通过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']
不存在。
我想念什么?
我对我的PHP配置和网站进行了所有建议的更改。 我将php.ini中的cookie路径设置为“ /”,并在iFrame中使用了完整的子域路径(“ www.domain.com/dashboard/dashboard.php”)。 现在看来一切正常。
另外,我只是使用OpenAM作为IdP和SimpleSAMLphp作为SP来实现SSO。 不再需要会话cookie来管理身份验证,并且组件之间传递的所有数据现在都可以使用Web服务完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.