ASP.NET中的会话超时和AJAX

ASP.NET中的会话超时和AJAX,asp.net,ajax,session,Asp.net,Ajax,Session,我有一个使用AJAX执行脚本的按钮。 通常,当会话仍处于活动状态时,脚本将返回一些数据,这些数据将放在父页面中。 如果会话过期,AJAX将返回登录屏幕,该屏幕位于父页面内,看起来非常奇怪 如何检测会话超时并在父页面上回发?当您拨打电话时,首先检查会话参数是否为Nothing/null。如果为null,则您的会话可能已超时。如果没有显式设置任何会话变量,可以在用户登录时设置一个。如果会话过期,AJAX将返回登录屏幕是什么意思?您可以控制返回的内容,因此,与其返回登录屏幕,不如返回某种类型的错误代码

我有一个使用AJAX执行脚本的按钮。 通常,当会话仍处于活动状态时,脚本将返回一些数据,这些数据将放在父页面中。 如果会话过期,AJAX将返回登录屏幕,该屏幕位于父页面内,看起来非常奇怪


如何检测会话超时并在父页面上回发?

当您拨打电话时,首先检查会话参数是否为Nothing/null。如果为null,则您的会话可能已超时。如果没有显式设置任何会话变量,可以在用户登录时设置一个。

如果会话过期,AJAX将返回登录屏幕是什么意思?您可以控制返回的内容,因此,与其返回登录屏幕,不如返回某种类型的错误代码,或者最好抛出一个可以在客户端捕获为错误的异常。

由于您不太可能调用完整页面,而您的登录页面可能是完整页面,您可以执行以下操作

if (xmlhttp.responseText.indexOf("DOCTYPE") != -1) {
    window.location.href = window.location.href;
}

我正在使用表单身份验证。当页面尝试加载但会话已过期时,asp.net会将页面重定向到登录屏幕。