Route:网关的基本构建块。它由 ID、目标 URI、谓词集合和过滤器集合定义。如果聚合谓词为真,则匹配路由。
断言:这是一个Java 8 函数断言。输入类型是Spring FrameworkServerWebExchange。这使您可以匹配来自 HTTP 请求的任何内容,例如标头或参数。
过滤器GatewayFilter:这些是使用特定工厂构建的实例。在这里,您可以在发送下游请求之前或之后修改请求和响应。
spring:
cloud:
gateway:
routes:
#路由id
- id: host_foo_path_headers_to_httpbin
#路由成功后路由到此地址
uri: http://ityouknow.com
predicates:
- Host=**.foo.org
- Path=/headers
- Method=GET
- Header=X-Request-Id, \d+
- Query=foo, ba.
- Query=baz
- Cookie=chocolate, ch.p
- After=2018-01-20T06:06:06+08:00[Asia/Shanghai
gateway处理跨域
因为是跨域请求,前端会首先发送一个options的嗅探请求,一次真正的请求
所以会出现两个403
所以如果你没有自定的headers的头信息那么是可以通过 spring cloud Gateway ,但是如果有加自定义Headers,这样就会被 spring cloud Gateway给拦截,说:跨域请求中没有自定的header
spring:
application:
name: oooo
cloud:
nacos:
discovery:
server-addr: localhost:8848
gateway:
globalcors:
corsConfigurations:
'[/**]':
allowedHeaders: "*"
allowedOrigins: "*"
allowCredentials: true
allowedMethods:
- GET
- POST
- DELETE
- PUT
- OPTION