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