首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CORS规则nginx-ingress规则

CORS规则nginx-ingress规则
EN

Stack Overflow用户
提问于 2018-08-08 10:35:15
回答 3查看 49.3K关注 0票数 18

我需要允许来自多个来源的请求:http://localhost:4200http://localhost:4242等,在nginx版本1.7.1上。但我无法在多个来源中做到这一点,因为nginx.ingress.kubernetes.io/cors-allow-credentials: true不能与nginx.ingress.kubernetes.io/cors-allow-origin: "*"一起工作。它会导致浏览器生成CORS错误。也许有人有办法避免这个错误?

这是我的配置

代码语言:javascript
复制
 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"

CORS策略阻止从“https://stage.site.com/api/session”从“http://localhost:4200”访问“https://stage.site.com/api/session”:当请求的凭据模式为“包括”时,响应中的“访问-控制-允许-原产地”标题的值不能是通配符“*”。由XMLHttpRequest发起的请求的凭据模式由withCredentials属性控制。

EN

回答 3

Stack Overflow用户

发布于 2018-08-08 10:43:18

添加注释以启用CORS

代码语言:javascript
复制
nginx.ingress.kubernetes.io/enable-cors: "true"

请注意,字符串"*“不能用于支持凭据 (https://www.w3.org/TR/cors/#resource-requests)的资源,请尝试使用域列表(逗号分隔)而不是*。

票数 12
EN

Stack Overflow用户

发布于 2020-04-03 14:13:11

您可以创建一个具有不同域和cors来源的第二个侵入域,指向相同的目的地。这不是最好的解决办法,但有效。

或者:

代码语言:javascript
复制
        kubernetes.io/ingress.class: nginx
        nginx.ingress.kubernetes.io/configuration-snippet: |
           more_set_headers "Access-Control-Allow-Origin: $http_origin";
        nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
        nginx.ingress.kubernetes.io/cors-allow-methods: PUT, GET, POST, 
           OPTIONS, DELETE, PATCH
        nginx.ingress.kubernetes.io/enable-cors: "true"

但是注意,$http_origin允许所有的来源!

票数 7
EN

Stack Overflow用户

发布于 2022-11-10 05:20:53

现在可以在cors-allow-origin中以逗号分隔值的形式添加多个源。

示例:

代码语言:javascript
复制
nginx.ingress.kubernetes.io/cors-allow-origin: "https://example.com, https://another.com, http://localhost:8000"

来源:Cors允许多源

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51744536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档