jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如果会话超时,如何在MVC中调用jquery ajax后重定向到新页面?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1-我有一个调用动作的Ajax链接,该动作返回一个视图,该视图在特定Div中打开(将其视为用相应视图更新div的菜单)
2-如果会话超时返回我的登录视图

所以,如果我点击链接并且会话超时,则登录视图在div中打开而不是在整个页面

我应该怎么做如果会话超时它返回我的div上的新页面中的登录视图?

解决方法

处理会话到期的有效方法是创建自定义Authorization属性,并在会话已过期并且正在处理ajax请求时返回HTTP 403响应.

要创建一个支持Ajax的授权属性,您可以从AuthorizeAttribute继承并覆盖HandleUnauthorizedRequest事件,并检查请求的类型,例如. IsAjaxRequest()

public class AjaxAuthorizeAttribute : AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        if (filterContext.HttpContext.Request.IsAjaxRequest())
        {
            // Fire back an unauthorized response
            filterContext.HttpContext.Response.StatusCode = 403;
        }
        else
            base.HandleUnauthorizedRequest(filterContext);
    }
}

然后就像使用Authorize一样,使用AjaxAuthorize属性装饰控制器或操作

[AjaxAuthorize(Roles = "1,2,3,4,5")]
public class HomeController 
{

然后,如果您正在使用jQuery,则可以通过创建全局ajax错误处理程序来处理403响应.

$.ajaxSetup({
        error: function (x,e) {
            if (x.status == 403) {
                alert("Sorry,your session has expired. Please login again to continue");
                window.location = "/login";
            }
        }
    });

大佬总结

以上是大佬教程为你收集整理的如果会话超时,如何在MVC中调用jquery ajax后重定向到新页面?全部内容,希望文章能够帮你解决如果会话超时,如何在MVC中调用jquery ajax后重定向到新页面?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: