Ambassador 可以处理 CORS 请求吗?

Can Ambassador handle CORS requests?

如果这是一个非常无知的问题,我很抱歉,但是 Ambassador 是否有可能真正处理 CORS headers 和 pre-flight OPTION 响应?

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

这是我的情况:我在对某些微服务的所有 http 请求前面都有 Ambassador。由于[原因],我们现在需要一个单独的域来向同一个大使发出请求。

我配置了一个 AuthService,根据文档 "When you use external authorization, each incoming request is authenticated before routing to its destination, including pre-flight OPTIONS requests." 这非常合理,这就是我所看到的。我的 AuthService 被配置为允许正确的事情并且似乎正在工作。 AuthService 以适当的 headers 响应,但 Ambassador 似乎只是忽略了这一点,只关心 AuthService 是否以 200 响应。 (这似乎完全合理。)

我在我的大使模块上注释了这个:

getambassador.io/config: |
  --- 
  apiVersion: ambassador/v1
  kind:  Module
  name:  ambassador
  config:
    service_port: 8080
    cors:
      origins: [my domain here]
      credentials: true

这似乎没有达到我的预期,即处理 CORS headers 和 pre-flight... 而是将其转发到服务以处理所有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