跨域解决方案有很多种网上都能找到,但是一不小心多个解决方案一起使用了,也会出现问题,浏览器里面出现多个Access-Control-Allow-Origin就得注意下,是不是解决方案用多了,我这个问题出现的原因是:
1.代码上用了过滤器解决跨域
public class CrossFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, If-Modified-Since");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.addHeader("Access-Control-Allow-Credentials", "true");
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json");
//此行代码确保请求可以继续执行至Controller
filterChain.doFilter(request, response);
}
}
2.ng里面用也配置了Access-Control-Allow-Origin:*