【转】 SpringCloudAlibaba--07——gateWay
【转】 SpringCloudAlibaba--07——gateWay
参考地址:蚂蚁课堂
* GateWay词汇表简介
首先看下项目中配置时候的用法:

官网上的介绍GateWay词汇表:(这是翻译成中文的)

这三个就是GateWay的核心
谓词:意思就是个转发的规则,比如介绍几种常用的谓词用法:
* 谓词用法
后路线谓词工厂:(在这个时间之后的都可以调转)

前路线谓词工厂:

主机路由谓词工厂:

重量路线谓词工厂:

* GateWay 工作原理

找到这个源码:

点进去第一行的配置源码,就可以看到源码里人家说的,如果有Servlet配置,就会直接报错

* GateWay解决跨域问题
微服务中的跨域问题,不属于前端解决!核心在我们后端
虽然@CrossOrigin 注解可以解决跨域问题,但如果有很多个控制层的类,就很不方便了。
解决办法有很多种,比较靠谱的话,用Nginx吧
Nginx解决跨域性问题要保持域名和端口号一致,还可以通过配置文件解决跨域问题,
不过更好的办法使用Filter,要在网关上配置Filter,而不是在每个服务里配置,这样就可以解决了
@Component public class CrossOriginFilter implements GlobalFilter { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpRequest request = exchange.getRequest(); ServerHttpResponse response = exchange.getResponse(); HttpHeaders headers = response.getHeaders(); headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "*"); headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "POST, GET, PUT, OPTIONS, DELETE, PATCH"); headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true"); headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, "*"); headers.add(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "*"); return chain.filter(exchange); }

浙公网安备 33010602011771号