【发布时间】:2019-01-15 14:12:21
【问题描述】:
我需要在 nginx-ingress 版本 1.7.1 上允许来自多个来源的请求:http://localhost:4200、http://localhost:4242 等。但我无法为多个来源做到这一点,因为nginx.ingress.kubernetes.io/cors-allow-credentials: true 不适用于nginx.ingress.kubernetes.io/cors-allow-origin: "*"。它会导致浏览器生成 CORS 错误。也许有人有避免此错误的解决方案?
这是我的配置
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-origin: "*"
nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS, DELETE"
nginx.ingress.kubernetes.io/cors-allow-headers: "DNT,X-CustomHeader,X-LANG,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Api-Key,X-Device-Id,Access-Control-Allow-Origin"
从 'https://stage.site.com/api/session' 访问 XMLHttpRequest 来源“http://localhost:4200”已被 CORS 策略阻止: 响应中“Access-Control-Allow-Origin”标头的值必须 当请求的凭据模式为时,不是通配符“*” '包括'。发起请求的凭证模式 XMLHttpRequest 由 withCredentials 属性控制。
【问题讨论】:
-
看来您需要通过在服务器端代码的不同部分设置 Access-Control-Allow-Origin 值来解决此问题。见github.com/kubernetes/ingress-nginx/issues/2535和github.com/kubernetes/ingress-nginx/issues/…
-
不——这也不行。
标签: kubernetes cors kubernetes-ingress