云端点处理程序SSL重定向被CORS阻止

时间:2017-03-19 17:21:10

标签: google-app-engine cors google-cloud-endpoints

我希望使用HTTPS调用我的Cloud Endpoints API。我的app.yaml文件包含以下内容:

# The endpoints handler must be mapped to /_ah/api.
- url: /_ah/api/.*
  script: main.api
  secure: always

如果客户端(即网站)对端点URL进行不安全(HTTP)调用,App Engine会执行重定向到安全版本(HTTPS)

例如,假设我的App Engine应用程序位于http://api.endpoints.my-app.appspot.com,并且用于向方法mymethod发出HTTP GET请求的API端点是:

http://api.endpoints.my-app.appspot.com/_ah/api/myapp/v1/mymethod

App Engine重定向到HTTP S 版本:

https://api.endpoints.my-app.appspot.com/_ah/api/myapp/v1/mymethod

但是,重定向来自阻止:

blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.

如何将所需的标头添加到我的资源(即App Engine上的我的Cloud Endpoints API)?谷歌的文档声明默认情况下在App Engine Standard上启用了CORS - 这就是我正在使用的。所以我不确定为什么这甚至是一个问题。

1 个答案:

答案 0 :(得分:1)

您应该能够在Access-Control-Allow-Origin中配置app.yml标头。对于您的情况,请尝试以下app.yml文件:

handlers:
- url: /_ah/api/.*
  script: main.api
  secure: always
  http_headers:
    Access-Control-Allow-Origin: http://localhost:4000

更多内容阅读: