我正在网站上工作,最近开始调试Internet Explorer。通过对Zend操作的Ajax POST请求进行身份验证,该操作检查对数据库的登录/传递,并在触发“记住我”时写入cookie。 JSON使用状态代码发送回Ajax。 (很高兴,警告,错误等......) 然后是这样的事情:
if( result.code == 0 ){
window.location.reload();
return false;
}
首先,IE尝试在包含JSON响应的登录提交后下载一些文件,因此我在标题中进行了一些更改以绕过该行为。
但现在,IE什么也没做。我的意思是,Ajax的成功函数接收到好的代码(0),表示一切正常,它重新加载页面,但仍然没有登录。
在我们的日志中,Zend说一切都还可以。
注意:我注意到只有在选中“记住我”复选框时才可以登录。
您认为这来自哪里?它在其他浏览器上运行良好,我很疯狂。
编辑1:添加P3P标题后没有变化。
答案 0 :(得分:1)
这是一个很长的镜头,但是页面可能被浏览器缓存了吗?换句话说,这些方法中的任何一个都有帮助: window.location.reload with clear cache
或者,this answer中的链接突出显示要检查的其他一些内容(包括影响IE但不影响FF的时差)
答案 1 :(得分:0)
我们终于明白了。 谢谢Christian,this link有所帮助。 出于安全原因,我们在登录检查后使用Zend_Session :: regenerateId()重新生成会话ID。在其他浏览器仅重新生成会话ID的情况下,IE会销毁并生成新的会话ID。所以它松动了连接。 (我想)