如果这是一个非常无知的问题,我很抱歉,但是大使是否有可能真正处理 CORS header 和飞行前 OPTION 响应?
文档 ( https://www.getambassador.io/reference/cors ) 对我来说似乎有点模糊,是否只有钩子(Hook)来阻止请求,或者它是否可以真正代表服务进行响应。
这是我的情况:我在对某些微服务的所有 http 请求之前都有大使。由于[原因],我们现在需要一个单独的域来向同一个大使发出请求。
我配置了 AuthService,并且根据文档“当您使用外部授权时,每个传入请求在路由到其目的地之前都会经过身份验证,包括飞行前 OPTIONS 请求。”这很有道理,这就是我所看到的。我的 AuthService 配置为允许正确操作,并且似乎有效。 AuthService 使用适当的 header 进行响应,但大使似乎只是忽略这一点,只关心 AuthService 是否使用 200 进行响应。 (这看起来完全合理。)
我在我的大使模块上注释了这一点:
getambassador.io/config: |
---
apiVersion: ambassador/v1
kind: Module
name: ambassador
config:
service_port: 8080
cors:
origins: [my domain here]
credentials: true
这似乎并没有达到我的预期,即处理 CORS header 和飞行前...而是将其转发到服务来处理所有 CORS 内容。
最佳答案
事实证明,通过在 cors
配置中指定 headers: "Content-Type"
,事情就开始起作用了。显然这并不像我想象的那么可选。
这就是我的模块:
getambassador.io/config: |
---
apiVersion: ambassador/v1
kind: Module
name: ambassador
config:
service_port: 8080
cors:
origins: [my domain here]
headers: "Content-Type"
credentials: true
关于kubernetes - 大使可以处理 CORS 请求吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56396806/