美文网首页
java 服务端允许跨域

java 服务端允许跨域

作者: MOMOsShare | 来源:发表于2019-11-25 11:53 被阅读0次

CorsInterceptor.java

@Component

public class CorsInterceptor extends HandlerInterceptorAdapter {

    @Override

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {

        //跨域

        HttpServletRequest httpServletRequest = (HttpServletRequest) request;

        HttpServletResponse httpServletResponse = (HttpServletResponse) response;

        httpServletResponse.setHeader("Access-control-Allow-Origin", httpServletRequest.getHeader("Origin")); //标识允许哪个域到请求,直接修改成请求头的域

        httpServletResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE");//标识允许的请求方法

        // 响应首部 Access-Control-Allow-Headers 用于 preflight request (预检请求)中,列出了将会在正式请求的 Access-Control-Expose-Headers 字段中出现的首部信息。修改为请求首部

        httpServletResponse.setHeader("Access-Control-Allow-Headers", httpServletRequest.getHeader("Access-Control-Request-Headers"));

        httpServletResponse.setHeader("Access-Control-Allow-Credentials","true");

        //给option请求直接返回正常状态

        if (httpServletRequest.getMethod().equals(RequestMethod.OPTIONS.name())) {

            return false;

        }

        return super.preHandle(request, response, handler);

    }

}

相关文章

网友评论

      本文标题:java 服务端允许跨域

      本文链接:https://www.haomeiwen.com/subject/suvdwctx.html