Google cloud platform 为托管在谷歌云存储上的谷歌云功能启用CORS

Google cloud platform 为托管在谷歌云存储上的谷歌云功能启用CORS,google-cloud-platform,cors,google-cloud-functions,google-cloud-storage,Google Cloud Platform,Cors,Google Cloud Functions,Google Cloud Storage,使用GoogleCloud函数,我托管了一个静态网站,我也制作了一个云函数,但我需要使用javascript使用xmlhttp调用它 这就是我所遵循的: gsutil cors get gs:// 我将源url更新为* 给了我所需要的回答: [ { "maxAgeSeconds": 3600, "method": ["GET"], "origin": ["*"], "responseHeader": ["Content-Type"] } ] 甚至尝试使用此配置

使用GoogleCloud函数,我托管了一个静态网站,我也制作了一个云函数,但我需要使用javascript使用xmlhttp调用它

这就是我所遵循的:

gsutil cors get gs://

我将源url更新为*

给了我所需要的回答:

[
  {
   "maxAgeSeconds": 3600,
   "method": ["GET"],
   "origin": ["*"],
   "responseHeader": ["Content-Type"]
  }
]
甚至尝试使用此配置:

[
    {
      "origin": ["*"],
      "method": ["*"]
    }
]
这是我在网络标签上找到的,看起来很完美

我甚至试图清除缓存,但它给了我同样的CORS错误


我看到您访问的是功能,而不是ht ebucket,我认为问题可能是云功能上未启用CORS,而您仅在GCS bucket上启用了CORS。请看一看,解决方案是添加/设置云函数返回的适当HTTP响应头,以允许来自其他域的请求。此安全保护由浏览器实现。在执行XMLHttpRequest之前,会向云函数发送一个HTTP选项请求,以验证您的域是否可以发出此请求。由于缺少HTTP响应头或HTTP响应头配置不正确,此操作失败。@Edgardo评论中的谷歌文章很好。除测试外,不要将访问控制允许原点设置为
*
。指定您的域。有助于理解CORS的好文章:@JohnHanley完全完成了,现在它正在工作,但我使用了这个中间件,google docs with recommends to add标头没有按预期工作。