如何使用CORS设置GCP App Engine实例?

时间:2018-11-29 00:03:05

标签: javascript google-cloud-platform fetch

我已经设置了两个不同的GCP App Engine应用程序。一个是带有以下app.yaml的快递服务器(我们称其为foo):

runtime: nodejs10
handlers:
- url: /tasks
  static_dir: /tasks
  http_headers:
    Access-Control-Allow-Origin: https://bar.appspot.com/
  secure: always

我正在从我的酒吧应用中尝试进行提取呼叫:

const response = await fetch('https://foo.appspot.com/tasks');

但是,每次我尝试尝试此操作时,Chrome都会以“已被CORS策略阻止:我在请求的资源上没有'Access-Control-Allow-Origin'标头”来阻止我的请求。错误。我也尝试过将http_header中的URL替换为'*'无济于事。为什么是这样?我想念什么?

编辑:经过进一步的挖掘,我发现从foo返回的标头甚至根本不包含Access-Control-Allow-Origin标头。

编辑2:我终于通过仅使用npm cors软件包:Connections diagram

绕过了这个问题

2 个答案:

答案 0 :(得分:1)

最后使用cors软件包:https://www.npmjs.com/package/cors绕过了这个问题。祝大家好运!

答案 1 :(得分:0)

截至2020年5月,我遇到了同样的问题,css文件被Google云存储服务的浏览器上的CORS策略阻止。

并且在此Gcloud Wiki页面中已解决:https://cloud.google.com/storage/docs/configuring-cors#configure-cors-bucket

通过在G存储桶上设置CORS,它对我有用。

并且不需要app.yaml中的handlers东西配置,我也不是YAML btw的忠实粉丝...