Google cloud platform Anthos服务网格/Istio CORS未启用

Google cloud platform Anthos服务网格/Istio CORS未启用,google-cloud-platform,istio,google-anthos,Google Cloud Platform,Istio,Google Anthos,我正在尝试使用Istio入口网关在带有Anthos服务Mesh 1.8的GKE集群上启用CORS,但是CORS头没有正确返回 这里是服务配置 apiVersion:v1 种类:服务 元数据: 姓名:我的服务 规格: 类型:集群 选择器: 应用程序:我的服务 端口: -名称:http 端口:8080 目标港:8080 --- apiVersion:apps/v1 种类:部署 元数据: 姓名:我的服务 规格: 选择器: 火柴标签: 应用程序:我的服务 模板: 元数据: 标签: 应用程序:我的服务 规

我正在尝试使用Istio入口网关在带有Anthos服务Mesh 1.8的GKE集群上启用CORS,但是CORS头没有正确返回

这里是服务配置

apiVersion:v1 种类:服务 元数据: 姓名:我的服务 规格: 类型:集群 选择器: 应用程序:我的服务 端口: -名称:http 端口:8080 目标港:8080 --- apiVersion:apps/v1 种类:部署 元数据: 姓名:我的服务 规格: 选择器: 火柴标签: 应用程序:我的服务 模板: 元数据: 标签: 应用程序:我的服务 规格: serviceAccountName:ksa 容器: -姓名:我的服务 图片: 端口: -名称:http服务器 集装箱港口:8080 和入口配置

apiVersion:networking.istio.io/v1beta1 种类:网关 元数据: 名称:istio网关 规格: 选择器: 伊斯蒂奥:入口大道 服务器: -端口: 电话:80 名称:http 协议:HTTP 主持人: - "*" --- apiVersion:networking.istio.io/v1beta1 种类:虚拟服务 元数据: 姓名:istio ingress 规格: 主持人: - "*" 网关: -istio网关 http: -名称:默认公共路由 路线: -目的地: 主持人:我的服务 警察局: allowOrigins: -准确:“*” 允许方法: -得到 -职位 -补丁 -放 -删除 -选择权 allowCredentials:false Alloweader: -授权书 最大年龄:“24小时” 我还使用在线rest客户端来测试端点,如果我使用或不使用http前缀,我会得到不同的响应

使用
/mypath
我在使用
http:///mypath
我没有启用通用CORS。如果我从Postman执行api,则所有操作都正确,但不会返回CORS头。我还尝试直接从烧瓶应用程序设置CORS,但没有任何改变

你知道怎么解决吗


谢谢

这应该行得通,我刚刚测试过

allowOrigins:
 - exact: "*"
根据我的经验,Istio CORS选项是通用CORS功能的一个相当薄的包装,所以我想真正的问题不是Istio,而是CORS配置


可能是
allowCredentials
allowHeaders
有问题。另外,如果您有一个Istio
授权策略
,那么可能应该允许对飞行前请求使用HTTP
选项
调用。

您可以尝试使用
allowOrigins:-regex:'*'
?如果是regex,则可能应该是
*
。但是我认为,精确的
*
应该也能起作用。我认为问题在于
内容类型
标题通过
获取
请求传递