jQuery – ASP.NET MVC强制将AJAX请求重定向到登录页面时,FormsLogin会话不再活动

前端之家收集整理的这篇文章主要介绍了jQuery – ASP.NET MVC强制将AJAX请求重定向到登录页面时,FormsLogin会话不再活动前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些 AJAX调用,通过jQuery. AJAX方法渲染PartialViewResults.这样做很棒,我的意见让我完全按照我想要的方式呈现.

当我离开页面一段时间并且Forms auth会话到期时,会出现问题.当我点击执行AJAX请求的操作时,它会显示我的div中的登录页面.

我想要将WHOLE页面重定向登录页面.

解决方法

在Global.asax的Application_EndRequest()方法中设置它

您可以检查请求是否是ajax请求,并检查是否发送HTTP重定向(302),如果是,则我们会想要发送401.

protected void Application_EndRequest() {
            var context = new HttpContextWrapper(Context);
            // If we're an ajax request,and doing a 302,then we actually need to do a 401
            if (Context.Response.StatusCode == 302 && context.Request.IsAjaxRequest()) {
                Context.Response.Clear();
                Context.Response.StatusCode = 401;
            }
        }

然后在您的客户端代码中,在全球可访问的区域:

MyNamespace.handleAjaxError = function (XMLHttpRequest,textStatus,errorThrown) {
    if (XMLHttpRequest.status == 401) {
        // perform a redirect to the login page since we're no longer authorized
        window.location.replace("logout path");
    }    
    } else {
        MyNamespace.displayGeneralError();
    }
};

  $.ajax({
  type: "GET",url: userAdmin.addUserActionUrl,success: userAdmin.createUserEditorDialog,error: MyNamespace.handleAjaxError
 });
原文链接:https://www.f2er.com/jquery/180061.html

猜你在找的jQuery相关文章