【问题标题】:Session timeout response in AJAXAJAX 中的会话超时响应
【发布时间】:2011-04-25 05:51:42
【问题描述】:

在我的应用程序中,我正在使用 AJAX 加载一些表。但是当用户的会话超时时,它会给我登录页面作为加载到表格区域的响应。

当 AJAX 调用期间发生会话超时时,我想重定向到登录页面。

【问题讨论】:

  • 我来不及思考这样的问题并找到了你的问题。在任何页面加载(服务器端)中,我检查用户是否存在。如果他们没有登录,那么我只会死掉一个包含 ajaxtimeout 的字符串。我自己的大多数库都会检查 responsetext.indexof('ajaxtimeout') ,在这种情况下,我将 window.location = login page。

标签: javascript ajax session


【解决方案1】:

在呈现登录页面时,您可以在响应中附加一个自定义 HTTP 标头:X-LOGIN-PAGE: True。然后执行您的 AJAX 调用并检查成功回调中是否存在此自定义标头。如果存在,请采取相应的行动。

【讨论】:

  • 在这种情况下,我需要在所有页面上的每个 AJAX 调用中检查这一点。
  • 如果您使用 jquery,您可以设置全局 ajax 选项:jquery.ajaxSetup 并在 complete 回调中执行重定向,而无需修改现有的 AJAX 调用。如果您不使用 jQuery,则取决于您执行 AJAX 调用的方式,可能有也可能没有解决方案。
【解决方案2】:

您可以在 AJAX 调用所调用的方法中检查身份验证,如果未找到,则只需返回一个标志。在客户端页面的 AJAX 处理程序中,您可以检测并重定向到登录页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2011-03-19
    • 2011-10-04
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    相关资源
    最近更新 更多