使用IE9,基于Ajax的身份验证失败

时间:2014-03-04 10:04:12

标签: jquery ajax internet-explorer authentication internet-explorer-9

我在Fancybox模式中内置了基于Ajax的登录和注册功能。用户单击登录按钮,Fancybox中的表单打开,用户提交,Ajax响应重新加载页面,用户通过身份验证。我在服务器端使用PHP。

除IE9外,所有浏览器的功能都可以正常使用。我有相同的服务器端身份验证代码,但不使用Ajax,在其他网站上的IE9中工作正常。所以,不知何故,这是基于Ajax的事实导致它在IE9中表现奇怪。

在IE9中调试响应输出时,所有内容都应该与其他浏览器完全相同。表单被序列化并提交,服务器验证表单,验证用户并成功返回浏览器。但是,IE9并不这么认为。当我在服务器上旁路表单数据并手动强制代码对特定用户进行身份验证时,IE9仍然无法执行任何操作,而其他浏览器则符合要求。如果我强制代码将特定用户作为正常页面加载的一部分进行身份验证,则它可以正常运行并且IE9符合。

只是为了重新迭代,这只发生在IE9上,而不是在其他浏览器上。但听起来不合逻辑,就好像服务器端发生的事情在IE9中没有任何影响。

是否有人知道可能导致此问题的任何IE9特定问题?我试过了:

  • 逐行调试所有内容
  • 以兼容模式在IE9中运行
  • 禁用页面上的所有其他表单

我不确定我还能研究什么。

1 个答案:

答案 0 :(得分:0)

更新:

经过一些进一步调查后,似乎IE9无法更新其会话,因为它很难处理带有下划线的cookie。

在这种情况下,本地开发环境使用主机dev_v2.mysite.com。问题没有出现在staging.mysite.com上,将本地更改为dev2.mysite.com也解决了这个问题。