为 Endpoints 启用 CORS 支持

CORS(跨源资源共享)是一种标准机制,允许在网页中执行的 XMLHttpRequest (XHR) 调用与来自不同来源的资源进行交互。如果没有 CORS,所有浏览器强制执行的同源政策会阻止跨源请求。如需详细了解 CORS 的背景信息,请参阅 Mozilla 开发者网络 (MDN) 参考文档

CORS 标准要求 Web 客户端发出 CORS 预检 OPTIONS,以确定所请求的网络服务器是否支持 CORS。如果网络服务器支持 CORS 请求,它会使用适当的 CORS 响应标头来处理 OPTIONS 请求。

在后端应用中处理 CORS

如果您的后端支持 CORS,您可以配置 ESP 或 ESPv2 将 CORS 请求传递到后端。您可以在 API 的 OpenAPI 规范中启用直通,如下所示:

swagger: "2.0"
host: "my-cool-api.endpoints.my-project-id.cloud.goog"
x-google-endpoints:
- name: "my-cool-api.endpoints.my-project-id.cloud.goog"
  allowCors: True

使用 ESP 或 ESPv2 处理 CORS

如果您的后端不支持 CORS,您可以通过指定 CORS 启动标志来配置 ESP 或 ESPv2 以处理 CORS 请求。在此方法中,CORS 预检请求不会传递到您的后端应用。此外,ESP 或 ESPv2 会视情况将配置的 CORS 标头附加到来自后端服务的响应。

以下 CORS 启动选项适用于 ESP 和 ESPv2