为 HTTP API 配置 CORS - Amazon API Gateway
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

为 HTTP API 配置 CORS

跨源资源共享 (CORS) 是一项浏览器安全功能,该功能限制从在浏览器中运行的脚本启动的 HTTP 请求。

通常需要 CORS 以构建 Web 应用程序来访问托管在不同域或源上的 API。您可以启用 CORS 以允许从托管在不同域上的 Web 应用程序发出对 API 的请求。例如,如果您的 API 托管在 https://{api_id}.execute-api.{region}.amazonaws.com/ 上,并且您希望从托管在 example.com 上的 Web 应用程序调用 API,您的 API 必须支持 CORS。

如果您为 API 配置 CORS,即使没有为 API 配置 OPTIONS 路由,API Gateway 也会自动向预检 OPTIONS 请求发送响应。对于 CORS 请求,API Gateway 将已配置的 CORS 标头添加到来自集成的响应中。

注意

如果您为 API 配置 CORS,则 API Gateway 忽略从后端集成返回的 CORS 标头。

您可以在 CORS 配置中指定以下参数。

CORS 标头 CORS 配置属性 示例值

Access-Control-Allow-Origin

allowOrigins

  • https://www.example.com

  • *(允许所有源)

  • https://*(允许以 https:// 开头的任何源)

  • http://*(允许以 http:// 开头的任何源)

Access-Control-Allow-Credentials

allowCredentials

true

Access-Control-Expose-Headers

exposeHeaders

Date、x-api-id

Access-Control-Max-Age

maxAge

300

Access-Control-Allow-Methods

allowMethods

GET、POST、DELETE*

Access-Control-Allow-Headers

allowHeaders

Authorization、*

通过使用 AWS CLI 为 HTTP API 配置 CORS

您可以使用以下命令启用来自 https://www.example.com 的 CORS 请求。

aws apigatewayv2 update-api --api-id api-id --cors-configuration AllowOrigins="https://www.example.com"

有关更多信息,请参阅 Amazon API Gateway 版本 2 API 参考中的 CORS