当前端页面与后台运行在不同的服务器时,就必定会出现跨域这一问题
第一种方法:使用OncePerRequestFilter过滤器,浏览器访问非本域名下的接口时回先发送OPTIONS请求,请求正常后,再发送正常请求
@Component
public class MethodFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException{
if (request.getMethod().equals("OPTIONS")) {
response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
} else {
filterChain.doFilter(request, response);
}
}
}
第二种方法:创建跨域拦截器实现HandlerInterceptor接口,并实现其方法,在请求处理前设置头信息,并放行