2012-07-01 156 views
0

我正在开发一个网站,并且最近开始调试Internet Explorer。身份验证通过Ajax POST请求发送到PHP Zend操作,该操作检查数据库的登录/传递并在触发“记住我”时写入cookie。 JSON通过状态码发送回Ajax。 (好走,警告,错误等) 然后是这样的:在Internet Explorer上的Ajax请求后,会话不会创建

if(result.code == 0){ 
    window.location.reload(); 
    return false; 
} 

首先,IE试图下载中心一些文件后,登录提交含有JSON响应,所以我做了几为了绕过这种行为,标题中的变化。

但是现在,IE什么都不做。我的意思是,Ajax的成功函数接收到一切正常的好代码(0),它重新加载页面,但仍未登录。

在我们的日志中,Zend说一切都安然无恙。

注意:我注意到只有在选中“记住我”复选框时才能登录。

你认为哪里来的?它在其他浏览器上运行良好,我疯了。

编辑1:添加P3P标题后没有变化。

回答

1

这是一个长镜头,但是页面可能被浏览器缓存?换句话说,做任何的这些方法帮助: window.location.reload with clear cache

另外,在this answer突出一些其他的东西的链接来检查(包括影响IE浏览器而不是FF时间差)

0

我们终于得到了它。 谢谢克里斯蒂安,this link明确帮助。 出于安全原因,我们在登录检查后使用Zend_Session :: regenerateId()重新生成会话ID。在其他浏览器只会重新生成会话ID的情况下,IE会销毁并生成新的会话ID。所以它失去了联系。 (我想)

相关问题