很抱歉,这是一个非常无知的问题,但是大使能否真正处理CORS标头和飞行前OPTION响应?
对于文档(https://www.getambassador.io/reference/cors)来说,如果只是为了防止请求而建立钩子,或者它可以真正代表服务进行响应,那么这些文档({{3}})对我来说就模棱两可。
这是我的情况:在某些微服务的所有http请求之前,我都有大使。为了[理由],我们现在需要一个单独的域来向同一位大使发出请求。
我已经配置了AuthService,并且根据docs“当您使用外部授权时,每个传入的请求都会经过身份验证,然后再路由到其目的地,包括飞行前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
这似乎并没有达到我的期望,它可以处理CORS标头并进行预检...而是将其转发到服务以处理所有CORS内容。
答案 0 :(得分:0)
结果证明,通过在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