拦截器preHandle直接返回状态和JSON

 @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
        System.out.println("-----------------------进入拦截器-------------------------");
        //每次都会先发一个不带参数的OPTIONS请求,若此请求失败则不会发起正式请求,所以要过滤掉OPTIONS请求
        if (HttpMethod.OPTIONS.toString().equals(request.getmethod())) {
            System.out.println("OPTIONS请求,放行");
            return true;
        }
        try {
            String token=request.getHeader("Authorization");
            //如果验证token失败,并且方法注明了Authorization,返回401错误
            if (token == null) {

                //设置response状态
                response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
                response.setCharacterEncoding("UTF-8");
                response.setContentType("application/json; charset=utf-8");

                //返回的数据
                JSONObject res = new JSONObject();
                res.put("status","-1");
                res.put("msg","need login");
                PrintWriter out = null ;
                out = response.getWriter();
                out.write(res.toString());
                out.flush();
                out.close();


                return false;
            }
        }catch (Exception e){
            return false;
        }

        return true;
    }

 

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...