kubernetes - 大使可以处理 CORS 请求吗?

标签 kubernetes cors microservices ambassador

如果这是一个非常无知的问题,我很抱歉,但是大使是否有可能真正处理 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/

相关文章:

rabbitmq - 使用 RabbitMQ 调度消息

kubernetes - 为什么我的 ISTIO 策略配置没有应用?

deployment - 如何在Netlify部署上启用CORS?

javascript - 同源策略不允许读取远程资源

javascript - grails 中的 CORS - 所有请求都失败了吗?

Symfony 4 和微服务

docker - 以编程方式向 docker compose 项目添加服务

kubernetes - 保管箱和Consul:保管箱存储未显示在Consul UI中

kubernetes - 如何手动从 Kubernetes 卸载/删除分蘖?

kubernetes - kubernetes HA群集主节点尚未准备好