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请求时后端不能重定向的原因实在找不到了,这个问题先记录吧

  • 相关阅读:
    测试心得---杂七杂八
    Redis 集群缓存测试要点--关于 线上 token 失效 BUG 的总结
    linux基础
    如何获取新系统的业务逻辑?
    python笔记9-多线程Threading之阻塞(join)和守护线程(setDaemon)
    python笔记8-多线程threading之封装式
    redis监控key失效
    使用PageHepler分页
    使用token和redis怎样判断账户是否失效和异地登录
    JSONObject
  • 原文地址:https://www.cnblogs.com/liuzeqi/p/14173607.html
Copyright © 2011-2022 走看看