我有一个 jquery 日历小部件,可以查询服务器上的多个事件源,这些源都返回相同的 JSON 格式响应。
真正令人讨厌的是,当用户 cookie 过期时,这些来源都会将用户重定向到返回 HTML 内容的登录页面。
我用 fiddler 查看了请求,我可以看到两个请求已完成:第一个是来自 jquery 日历对象的请求,用于更新具有 http 状态 302 的事件,并在请求登录页面后立即使用 http 状态 200。
GET /xyz/Adempimenti/GetEvents?_=1289170335910&start=1288566000&end=1291590000 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: application/json, text/javascript, */*; q=0.01
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=utf-8
Location: /xyz/Login/LogOn?ReturnUrl=%2fxyz%2fAdempimenti%2fGetEvents%3f_%3d1289170335910%26start%3d1288566000%26end%3d1291590000&_=1289170335910&start=1288566000&end=1291590000
我的网站深深地基于 ajax 调用,而这个日历只是解释我面临的问题的一个例子。我想避免在每次 ajax 调用时处理错误并进行重定向。最佳方法是找到一种在用户会话 cookie 过期时自动断开用户连接的方法。我已经在一些网络电子邮件系统中看到了这一点,该系统会自动创建一个对话框,说明会话已过期。
对这个方向有帮助吗?