前文SpringBoot跨域问题解决方法总结已经探讨了如何在springboot里解决跨域问题。
本文将探讨如何在spring cloud的网关zuul里解决跨域问题。
除了可以向前文那样对单个服务进行跨域解决,也可以针对网关进行配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
@Component public class MyFilter extends ZuulFilter { public String filterType() { return "pre"; } public int filterOrder() { return 0; } public boolean shouldFilter() { return true; } public Object run() { RequestContext ctx = RequestContext.getCurrentContext(); // 跨域 HttpServletResponse response = ctx.getResponse(); response.addHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "*"); response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); return null; } } |
需要注意的是,如果网关配置了跨域,那么单个服务里就不要配置了,不然会冲突
1 2 3 4 |
zuul: #需要忽略的头部信息,不在传播到其他服务 sensitive-headers: Access-Control-Allow-Origin ignored-headers: Access-Control-Allow-Origin,H-APP-Id,Token,APPToken |
0
跨域问题已解决,谢谢