大使可以处理CORS的要求吗?

xba*_*esx 7 cors kubernetes microservices ambassador

我很抱歉,如果这是一个非常无知的问题,但是大使是否有可能真正处理CORS标头和飞行前OPTION响应?

对于我来说,文档(https://www.getambassador.io/reference/cors)似乎有点模棱两可,只是有一些钩子可以阻止请求,或者它可以真正代表服务进行响应。

这是我的情况:在某些微服务的所有http请求之前,我都有大使。为了[理由],我们现在需要一个单独的域来向同一位大使发出请求。

我已经配置了AuthService,并且根据文档“当您使用外部授权时,每个传入的请求都会经过身份验证,然后再路由到其目的地,包括飞行前OPTIONS请求。” 这很有意义,这就是我所看到的。我的AuthService已配置为允许正确运行,并且似乎可以正常运行。AuthService使用适当的标头进行响应,但是大使似乎只是忽略了它,仅在乎AuthService是否以200进行响应。(这似乎是完全合理的。)

我在我的大使模块上对此进行了注释:

getambassador.io/config: |
  --- 
  apiVersion: ambassador/v1
  kind:  Module
  name:  ambassador
  config:
    service_port: 8080
    cors:
      origins: [my domain here]
      credentials: true
Run Code Online (Sandbox Code Playgroud)

而且这似乎并没有达到我的期望,它可以处理CORS标头并进行预检...相反,它将其转发给服务以处理所有CORS内容。

xba*_*esx 3

事实证明,通过headers: "Content-Type"cors配置中指定,事情就开始起作用了。显然这并不像我想象的那么可选。

现在这是我的模块:

getambassador.io/config: |
--- 
apiVersion: ambassador/v1
kind:  Module
name:  ambassador
config:
  service_port: 8080
  cors:
    origins: [my domain here]
    headers: "Content-Type"
    credentials: true
Run Code Online (Sandbox Code Playgroud)