

# 使用 API Gateway 控制台对资源启用 CORS
<a name="how-to-cors-console"></a>

您可以使用 API Gateway 控制台为已创建的 REST API 资源上的一个或所有方法启用 CORS 支持。启用 COR 支持后，将集成传递行为设置为 `NEVER`。在这种情况下，将拒绝未映射内容类型的方法请求，并返回“HTTP 415 不支持的媒体类型”响应。有关更多信息，请参阅 [API Gateway 中适用于 REST API 且无映射模板的有效载荷的方法请求行为](integration-passthrough-behaviors.md)。

**重要**  
资源可以包含子资源。为某个资源及其方法启用 CORS 支持不会以递归方式为子资源及其方法启用它。

**在 REST API 资源上启用 CORS 支持**

1. 通过以下网址登录到 Amazon API Gateway 控制台：[https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)。

1. 选择一个 API。

1. 在**资源**下选择一个资源。

1. 在**资源详细信息**部分，选择**启用 CORS**。

      
![\[在“资源”窗格中，选择“启用 CORS”。\]](http://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/images/amazon-api-gateway-new-console-enable-cors.png)

1.  在**启用 CORS** 框中，执行以下操作：

   1. （可选）如果您创建了自定义网关响应并希望为响应启用 CORS 支持，请选择一种网关响应。

   1. 选择各方法以启用 CORS 支持。`OPTION` 方法必须启用 CORS。

      如果您为某个 `ANY` 方法启用 CORS 支持，则会为所有方法启用 CORS。

   1.  在 **Access-Control-Allow-Headers** 输入字段中，输入静态字符串，该字符串是客户端必须在实际资源请求中提交的标头列表，以逗号分隔。使用控制台提供的 `'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'` 标头列表，或指定您自己的标头。

   1. 将控制台提供的值 `'*'` 用作 **Access-Control-Allow-Origin** 标头值，以支持来自所有源的访问请求，或指定可以访问该资源的源。

   1. 选择**保存**。  
![\[选择允许的标头\]](http://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/images/amazon-api-gateway-new-console-enable-cors-resources.png)
**重要**  
 如果在代理集成中将以上说明应用于 `ANY` 方法，那么将不会设置任何适用的 CORS 标头。相反，您的后端必须返回适用的 CORS 标头，例如 `Access-Control-Allow-Origin`。

在 `GET` 方法上启用 CORS 后，如果资源中没有 `OPTIONS` 方法，则该方法将添加到资源中。`200` 方法的 `OPTIONS` 响应会自动配置为返回三个 `Access-Control-Allow-*` 标头，以完成预检握手。此外，默认情况下，实际 (`GET`) 方法还会配置为在 200 响应内返回 `Access-Control-Allow-Origin` 标头。对于其他类型的响应，如果您不希望返回 `Access-Control-Allow-Origin'` 错误，您将需要手动对其进行配置，以返回带有“\$1”或特定源的 `Cross-origin access` 标头。

在您的资源上启用 CORS 支持后，您必须部署或重新部署 API 以使新设置生效。有关更多信息，请参阅 [创建 部署。](set-up-deployments.md#create-deployment)。

**注意**  
如果按照此过程操作后无法在资源上启用 CORS 支持，我们建议您将您的 CORS 配置与示例 API `/pets` 资源进行比较。要了解如何创建示例 API，请参阅[教程：通过导入示例创建 REST API](api-gateway-create-api-from-example.md)。