我在我的 ASP.net 应用程序中发出许多AJAX 请求,但是现在,当用户注销时,登录表单只会显示在我使用响应文本的任何地方。
我该如何处理这个问题?我无法重新概念所有响应,因此如果用户退出,我会得到某个响应,因为它们太多了。
有没有办法可以处理所有回复?所有响应均由特定文件夹中的 Generic Halndlers .ashx 处理。
您可以使用命令功能在整个站点上实现这一点来验证会话。这可以通过两步过程来实现
步骤1:
在 ajax 完成函数调用 validateSession 中,您将根据会话/登录页面内容重定向到登录页面。
complete: function(XHR, status){ //handle session out
validateSession(XHR.responseText);
},
第2步:
现在通过检查登录页面中的一些文本来处理会话和重定向。在我的示例中,我在登录页面中放置了 :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;
}
}