我遇到了一个问题,即我的网站上的登录在 IE8 中无法始终如一地工作。它在 Firefox/Chrome/Safari 中运行良好,但在 IE8 中运行良好。
首次登录时一切正常。注销并尝试重新登录后,它通常会失败一段时间。它将最终在身份验证后重定向到登录页面。
所以身份验证成功,它返回 true,但似乎 IE8 不接受我们通过返回设置的会话 id 的新值:
Set-Cookie SESSIONID=........; 路径=/
在响应头中。但显然,这适用于清晰的缓存,我可以正常工作。但是在它已经存在之后它无法重置,因此在验证并尝试转到新页面后,它会看到这是从浏览器发送的旧会话 ID 并重定向到登录页面。
我在这里或其他地方没有找到任何真正解决这个问题的东西(除了清除缓存)。大多数对 IE8 cookie 问题的引用都是特定于语言/框架的,并且不回答这个问题。
我可能需要对 set-cookie 做一些特别的事情来完成这项工作吗?
更新:
我已将 IE8 设置为在接受任何 cookie 之前进行提示。当登录正常时,它会按预期提示。当它不起作用时,甚至没有提示除了 cookie..
更新 2:
我应该提到 cookie 应该在 ajax 调用之后设置:
$.get(authenticate_url, ....)
它请求响应的 url 返回设置会话 id 的标头,然后在回调函数中,用户被重定向到主页 - 假设登录成功。