如何在 Google Cloud Endpoints 中允许 CORS?
How to allow CORS in Google Cloud Endpoints?
如 January 2017 Endpoints release notes 中所述,我尝试更新我的 openapi.yaml 文件以阻止可扩展服务代理 (ESP) 通过添加到 x-[=36= 来阻止跨源请求]-端点:
swagger: "2.0"
info:
description: "Market scan using technical indicators."
title: "Talib Test"
version: "1.0.0"
host: "YOUR-PROJECT-ID.appspot.com"
x-google-endpoints:
- name: "YOUR-PROJECT-ID.appspot.com"
allowCors: "true"
basePath: "/"
consumes:
- "application/json"
produces:
- "application/json"
schemes:
- "http"
...
尝试从我的 angular 应用程序进行 http 调用时,浏览器中继续出现错误。错误出现在开发人员模式和部署我的 angular 应用程序之后:
XMLHttpRequest cannot load
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
当我查看 Google 云日志时,我看到 requestMethod:"OPTIONS"
和 status:200
。 API 是一个 POST 方法,所以我猜是 ESP 阻止了请求。此外,我已经在我的 python 应用程序中使用 FLASK-CORS 允许 CORS,因此它应该可以正常工作。
我的应用程序有两个服务都在 Google App Engine 上。第一个是标准环境。第二,我遇到的问题是灵活的环境。我正在使用 dispatch.yaml 文件,如果相关的话,我会使用单独的 openapi.yaml 文件。此外,API 适用于 hurl it 和邮递员。
任何帮助都会很棒!
您的后端应用程序很可能没有正确处理 CORS OPTIONS。
如果 "allowCors" 为真,端点代理会将请求传递给您的后端应用程序。代理不会向请求添加任何内容。如果 "allowCors" 为假,代理将 return 404。
如 January 2017 Endpoints release notes 中所述,我尝试更新我的 openapi.yaml 文件以阻止可扩展服务代理 (ESP) 通过添加到 x-[=36= 来阻止跨源请求]-端点:
swagger: "2.0"
info:
description: "Market scan using technical indicators."
title: "Talib Test"
version: "1.0.0"
host: "YOUR-PROJECT-ID.appspot.com"
x-google-endpoints:
- name: "YOUR-PROJECT-ID.appspot.com"
allowCors: "true"
basePath: "/"
consumes:
- "application/json"
produces:
- "application/json"
schemes:
- "http"
...
尝试从我的 angular 应用程序进行 http 调用时,浏览器中继续出现错误。错误出现在开发人员模式和部署我的 angular 应用程序之后:
XMLHttpRequest cannot load
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
当我查看 Google 云日志时,我看到 requestMethod:"OPTIONS"
和 status:200
。 API 是一个 POST 方法,所以我猜是 ESP 阻止了请求。此外,我已经在我的 python 应用程序中使用 FLASK-CORS 允许 CORS,因此它应该可以正常工作。
我的应用程序有两个服务都在 Google App Engine 上。第一个是标准环境。第二,我遇到的问题是灵活的环境。我正在使用 dispatch.yaml 文件,如果相关的话,我会使用单独的 openapi.yaml 文件。此外,API 适用于 hurl it 和邮递员。
任何帮助都会很棒!
您的后端应用程序很可能没有正确处理 CORS OPTIONS。 如果 "allowCors" 为真,端点代理会将请求传递给您的后端应用程序。代理不会向请求添加任何内容。如果 "allowCors" 为假,代理将 return 404。