zoukankan      html  css  js  c++  java
  • Asp.Net Core Mvc3.1重定向不起作用

    一、问题描述

    前端妹纸使用Ajax调用后台接口,我这边在后台会判断用户是否登录,如果没有登录,重定向到登录页。

    后台代码:

        public class ActionFilter : IActionFilter
        {
            public void OnActionExecuting(ActionExecutingContext context)
            {
                    context.Result = new RedirectResult("~/Login/Index");
                    //context.HttpContext.Response.Redirect("~/Login/Index");
            }
        }

    而这段代码不起作用。

    二、解决

    为了证明自己的清白,所以自己写了一段测试代码去测试是否可以重定向。

    @using (Html.BeginRouteForm("Areas", new { Area = "Module", Controller = "User", Action = "GetList" }, FormMethod.Get))
    {
        <div><input type="submit"  value="跳转" /></div>}
    }

    结果证明自己是清白的,可以跳转到登录页。那么为什么前端妹纸使用ajax不能跳转呢?那写一段ajax调用测试一下

    function aa() {
            debugger 
            $.ajax({
                url: "/Module/User/GetList",
                data: "",
                type: "GET",
                dataType: "json",
                async: false,
                cache: false,
                success: function (res) {
    
                },
                error: function (e) {
    
                }
            });

    结果是不能跳转到登录页

    三、调用原因

    查看前辈写的代码,他这样写

    if (context.HttpContext.Request.IsAjaxRequest())
                                {
                                    TData obj = new TData();
                                    obj.Message = "抱歉,没有权限";
                                    context.Result = new JsonResult(obj);
                                }
                                else
                                {
                                    context.Result = new RedirectResult("~/Home/NoPermission");
                                }

    那结论就是Ajax发起请求时,重定向的工作需要前端来做;非Ajax请求时,重定向的工作后端来做。

    四、遗留问题

    具体Ajax请求时后端不能重定向的原因实在找不到了,这个问题先记录吧

  • 相关阅读:
    Mongodb
    Java原子类
    volatile
    uniapp输入空格
    看不见的的html
    小程序隐藏scroll-view滚动条的方法
    云函数调用云函数 openid不存在
    vue路由中 Navigating to current location ("/xxx") is not allowed
    Vue: 单页面应用如何保持登录状态
    letter-spacing
  • 原文地址:https://www.cnblogs.com/liuzeqi/p/14173607.html
Copyright © 2011-2022 走看看