我在ASP.net应用程序中发出许多 AJAX请求,但是现在,当用户注销时,登录表单只会显示在我使用响应文本的任何位置。
我该如何处理这个问题?我无法重新设置所有响应的概念,因此如果用户退出,我会得到一定的响应,因为它们太多。
有没有办法可以处理所有回复?所有响应都由Generic Halndlers .ashx在某个文件夹中处理。
答案 0 :(得分:1)
您可以使用comman函数在整个网站上实现此功能,以验证会话。这可以通过两步流程实现
STEP1:
在ajax完成函数中调用validateSession,您将根据会话/登录页面内容重定向到登录页面。
complete: function(XHR, status){ //handle session out
validateSession(XHR.responseText);
},
STEP2:
现在通过检查登录页面中的一些文本来处理会话和重定向。在我的示例中,我放置了:SESSION EXPIRED:登录页面中的字符串
function validateSession(strAjaxOutput, strStatus, objXhr)
{
if(("undefined" != typeof strStatus) && ("undefined" != typeof objXhr))
{
strAjaxOutput = objXhr.responseText;
}
var reg = /:SESSION EXPIRED:/;
if(reg.test(strAjaxOutput))
{
window.location = "http://www.myloginpage.com"; //redirect to login page
return false;
}
else
{
return true;
}
}