我的应用程序在 30 分钟后出现 session 超时。如果用户激活了“永久登录”功能,则在后续的 HTTP 请求中,服务器会读取“永久 session ”cookie 并恢复 session 。
但是,如果用户在 session 过期后没有重新加载或导航到另一个页面,而是单击通过 AJAX 检索数据的按钮,则 session 不会恢复;在应该加载数据的 DIV 中,出现了一个登录窗口。
这使我假设 AJAX 调用不携带 cookie 信息。我是对的,还是我漏掉了什么?
更新:
后端:symfony 1.2(PHP 框架), 前端:原型(prototype)
更新 2:这是应用程序中的错误,而不是 cookie 的问题
最佳答案
听起来您正在恢复 session ,但没有提供新的身份验证 cookie。您可能想尝试我在我的博客上写过的一种技术,即拥有一个客户端计时器,该计时器会在 session 超时之前提示用户,并且当他们单击“确定”以更新它时,将发出一个请求,该请求将用于使 session 和身份验证 cookie 保持事件状态。您可以在 http://farm-fresh-code.blogspt.com 找到更多信息。 .文章标题为Client-side Session Termination .
关于javascript - 使用 AJAX 调用恢复 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1617858/