0

我在我的 ASP.net 应用程序中发出许多AJAX 请求,但是现在,当用户注销时,登录表单只会显示在我使用响应文本的任何地方。

我该如何处理这个问题?我无法重新概念所有响应,因此如果用户退出,我会得到某个响应,因为它们太多了

有没有办法可以处理所有回复?所有响应均由特定文件夹中的 Generic Halndlers .ashx 处理。

4

1 回答 1

1

您可以使用命令功能在整个站点上实现这一点来验证会话。这可以通过两步过程来实现

步骤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;
    }
    } 
于 2013-03-25T18:45:24.030 回答