• 如果前端是Ajax请求,java返回Json字符串


    在springboot中有很多这样的请求需要你返回json字符串,而不是String,但是你的返回类型又是String,这时候就用到了这个方法:

    编写一个工具类:

       /**
         * 是否是Ajax异步请求
         * 
         * @param request
         */
        public static boolean isAjaxRequest(HttpServletRequest request)
        {
            String accept = request.getHeader("accept");
            if (accept != null && accept.indexOf("application/json") != -1)
            {
                return true;
            }
    
            String xRequestedWith = request.getHeader("X-Requested-With");
            if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1)
            {
                return true;
            }
    
            String uri = request.getRequestURI();
            if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml"))
            {
                return true;
            }
    
            String ajax = request.getParameter("__ajax");
            if (StringUtils.inStringIgnoreCase(ajax, "json", "xml"))
            {
                return true;
            }
            return false;
        }
       /**
         * 将字符串渲染到客户端
         * 
         * @param response 渲染对象
         * @param string 待渲染的字符串
         * @return null
         */
        public static String renderString(HttpServletResponse response, String string)
        {
            try
            {
                response.setContentType("application/json");
                response.setCharacterEncoding("utf-8");
                response.getWriter().print(string);
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            return null;
        }
        @GetMapping("/login")
        public String login(HttpServletRequest request, HttpServletResponse response) {
            // 如果是Ajax请求,返回Json字符串。
            if (ServletUtils.isAjaxRequest(request)) {
                return ServletUtils.renderString(response, "{'code':'1','msg':'未登录或登录超时。请重新登录'}");
            }
            return "login";
        }

    这个时候客户端收到的就是这种json数据;

  • 相关阅读:
    springBoot异常处理
    webSocket
    Java正则
    String.format
    JSTL-taglib
    http meta
    chrome 常用插件下载安装
    mysql 命令行个性化设置
    Entity Framework Code First
    SignalR Connection has not been fully initialized
  • 原文地址:https://www.cnblogs.com/sun2020/p/12761771.html
Copyright © 2020-2023  润新知