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

Google app engine 云端点处理程序SSL重定向被CORS阻止,google-app-engine,cors,google-cloud-endpoints,Google App Engine,Cors,Google Cloud Endpoints,我希望使用HTTPS调用我的云端点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) 例如,假设我的应用程序引擎应用程序位于http://api.endpoints.my

我希望使用HTTPS调用我的云端点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)

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

http://api.endpoints.my-app.appspot.com/_ah/api/myapp/v1/mymethod
应用程序引擎重定向到HTTPS版本:

https://api.endpoints.my-app.appspot.com/_ah/api/myapp/v1/mymethod
但是,来自的重定向被阻止:

被CORS策略阻止:请求的资源上不存在“Access Control Allow Origin”头。起源'http://localhost:4200因此,不允许访问。


我如何将所需的头添加到我的资源(即应用程序引擎上的我的云端点API)?谷歌的文档说明CORS在默认情况下是在应用程序引擎标准上启用的,这就是我正在使用的。因此,我甚至不确定这是一个问题。

您应该能够在
app.yml
中配置
访问控制允许源站
标题。对于您的情况,请在
app.yml
文件中尝试以下操作:

handlers:
- url: /_ah/api/.*
  script: main.api
  secure: always
  http_headers:
    Access-Control-Allow-Origin: http://localhost:4000
更多内容请阅读: