ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ajax请求被SpringMVC拦截器拦截后如何进行页面跳转

2021-05-06 21:58:35  阅读:17  来源: 互联网

标签:拦截器 请求 SpringMVC request window ajax session 跳转


背景

在实现了一个用户登录的拦截器后,判断session中是否存在用户的id,如果没有就跳转到登录界面,如果有就放行,发现这样对ajax请求没有作用,那么如何对ajax请求拦截后进行页面跳转呢?首先判断是否是ajax请求,如果是ajax请求就输出一个标志,然后再success中判断这个标志,然后根据标志在前端利用 window.location.href 进行页面的跳转

具体实现

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    HttpSession session = request.getSession();
    Integer uid = (Integer) session.getAttribute("id");
    String uri = request.getRequestURI();
    if (uri.contains("login") || uri.contains("register")) {
        return true;
    }
    if (uid == null) {
        // 判断是否是ajax请求
        String XRequested =request.getHeader("X-Requested-With");
        if("XMLHttpRequest".equals(XRequested)) {
            response.getWriter().write("FAILURE");
        } else {
            request.setAttribute("msg", "请登录后再操作");
            request.getRequestDispatcher("/login.jsp").forward(request, response);
        }
        return false;
    }
    return true;
}
$.ajax({
    url : "user/updateHeader",
    type : "POST",
    data : "base64=" + base64,
    async : true,
    success : function (msg) {
        if (msg === "SUCCESS") {
            alert("上传成功");
            window.location.href = "index.jsp";
        } else {
            alert("上传失败,请登录后尝试");
            window.location.href = "login.jsp";
        }
    }
})

标签:拦截器,请求,SpringMVC,request,window,ajax,session,跳转
来源: https://blog.csdn.net/qq_45758686/article/details/116464008

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有