【发布时间】:2011-03-19 05:33:59
【问题描述】:
我有一个使用 AJAX 执行脚本的按钮。 通常,当会话仍处于活动状态时,脚本将返回一些将放置在父页面内的数据。 如果会话过期,AJAX 将返回登录屏幕,该屏幕被放置在看起来很奇怪的父页面内。
如何检测会话超时并在父页面上进行回发?
【问题讨论】:
我有一个使用 AJAX 执行脚本的按钮。 通常,当会话仍处于活动状态时,脚本将返回一些将放置在父页面内的数据。 如果会话过期,AJAX 将返回登录屏幕,该屏幕被放置在看起来很奇怪的父页面内。
如何检测会话超时并在父页面上进行回发?
【问题讨论】:
当您拨打电话时,首先检查您的会话参数之一是否为 Nothing/null。如果它为空,则您的会话可能已超时。如果您没有显式设置任何会话变量,则可以在用户登录时设置一个。
【讨论】:
“如果会话过期,AJAX 将返回登录屏幕”是什么意思?您可以控制返回的内容,因此与其返回登录屏幕,不如返回某种错误代码,或者更好地抛出异常,您可以在客户端将其作为错误捕获。
【讨论】:
由于您不太可能调用完整页面,并且您的登录页面很可能是完整页面,因此您可以执行以下操作。
if (xmlhttp.responseText.indexOf("DOCTYPE") != -1) {
window.location.href = window.location.href;
}
【讨论】: