为 API Gateway REST API 资源启用 CORS

跨源资源共享 (CORS) 是一项浏览器安全功能,该功能限制从在浏览器中运行的脚本启动的跨源 HTTP 请求。如果您的 REST API 的资源接收非简单跨源 HTTP 请求,您需要启用 CORS 支持。

启用 CORS 支持意味着什么

当浏览器接收非简单 HTTP 请求时,CORS 协议将要求浏览器在发送实际请求之前向服务器发送一个预检请求,并等待服务器的批准(或请求凭证)。预检请求 将向您的 API 显示为 HTTP 请求:

  • 包含一个 Origin 标头。
  • 使用 OPTIONS 方法。
  • 包含以下标头:
    • Access-Control-Request-Method
    • Access-Control-Request-Headers

因此,为了支持 CORS,REST API 资源需要实施一个 OPTIONS 方法,该方法可以响应 OPTIONS 预检请求,该请求至少具有由 Fetch 标准强制执行的以下响应标头:

  • Access-Control-Allow-Methods
  • Access-Control-Allow-Headers
  • Access-Control-Allow-Origin

启用 CORS 支持的方式取决于您的 API 的集成类型。

使用 API Gateway 控制台在资源上启用 CORS

您可以使用 API Gateway 控制台为已创建的 REST API 资源上的一个或所有方法启用 CORS 支持。

重要

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

在 REST API 资源上启用 CORS 支持

  1. 通过 https://console.aws.amazon.com/apigateway 登录 API Gateway 控制台。
  2. 从 API 列表中选择 API。
  3. 在 Resources (资源) 下选择一个资源。这将为资源上的所有方法启用 CORS。

    或者,您也可以在资源下选择一个方法,仅为此方法启用 CORS。

  4. 操作下拉菜单中选择 Enable CORS (启用 CORS)

  5. 在 Enable CORS (启用 CORS) 表单中,执行以下操作:
    1. 在 Access-Control-Allow-Headers 输入字段中,键入客户端必须在实际资源请求中提交的逗号分隔标头列表的静态字符串。使用控制台提供的 ‘Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token‘ 标头列表,或指定您自己的标头。
    2. 将控制台提供的 ‘*‘ 的值用作 Access-Control-Allow-Origin 标头值,以允许来自所有源的访问请求,或指定允许访问该资源的源。
    3. 选择 Enable CORS and replace existing CORS headers (启用 CORS 并替换现有 CORS 标头)

    重要

    如果在代理集成中将以上说明应用于 ANY 方法,那么将不会设置任何适用的 CORS 标头。相反,您的后端必须返回适用的 CORS 标头,例如 Access-Control-Allow-Origin

  6. 在 Confirm method changes (确认方法更改) 中,选择 Yes, overwrite existing values (对,覆盖现有值) 以确认新的 CORS 设置。

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

在您的资源上启用 CORS 支持后,您必须部署或重新部署 API 以使新设置生效。有关更多信息,请参阅从 API Gateway 控制台部署 REST API

原文地址:https://www.cnblogs.com/cloudrivers/p/11620707.html

时间: 2024-08-02 10:47:33

为 API Gateway REST API 资源启用 CORS的相关文章

使用 API Gateway 导入 API 对资源启用 CORS

/users options: summary: CORS support description: | Enable CORS by returning correct headers consumes: - application/json produces: - application/json tags: - CORS x-amazon-apigateway-integration: type: mock requestTemplates: application/json: | { "

API Gateway 中控制和管理对 REST API 的访问

您可以使用以下机制进行身份验证和授权: 资源策略允许您创建基于资源的策略,以允许或拒绝从指定的源 IP 地址或 VPC 终端节点访问您的 API 和方法.有关更多信息,请参阅 使用 Amazon API Gateway 资源策略控制对 API 的访问. 标准 AWS IAM 角色和策略 提供灵活.稳健的访问控制,可应用于整个 API 或单个方法.IAM 角色和策略可用于控制谁可以创建和管理您的 API 以及谁可以调用它们.有关更多信息,请参阅使用 IAM 许可控制对 API 的访问. IAM 标

[转载] 构建微服务:使用API Gateway

原文: http://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=206889381&idx=1&sn=478ccb35294c58d25d2df2d9ced65cf7&scene=1&key=c76941211a49ab586d79043cb87ac0dfeede574a20b2208ce76058b151624e4273182de582a786668ea347c6f317b389&ascene=0&

微服务实战(二):使用API Gateway

[编者的话]本系列的第一篇介绍了微服务架构模式.它讨论了采用微服务的优点和缺点,除了一些复杂的微服务,这种模式还是复杂应用的理想选择. 当你决定将应用作为一组微服务时,需要决定应用客户端如何与微服务交互.在单体式程序中,通常只有一组冗余的或者负载均衡的服务提供点.在微服务架构中,每一个微服务暴露一组细粒度的服务提供点.在本篇文章中,我们来看它如何影响客户端到服务端通信,同时提出一种API Gateway的方法. 介绍 假定你正在为在线购物应用开发一个原生手机客户端.你需要实现一个产品最终页来展示

Using HAProxy as an API Gateway, Part 1 [Introduction]

转自:https://www.haproxy.com/blog/using-haproxy-as-an-api-gateway-part-1/ An API gateway handles load balancing, security, rate limiting, monitoring, and other cross-cutting concerns for API services. Read on to learn how HAProxy Enterprise excels as a

API Gateway - KONG 安装与配置

简介 Kong,是由Mashape公司开源的,基于Nginx的API gateway 特点 可扩展,支持分布式 模块化 功能:授权.日志.ip限制.限流.api 统计分析(存在商业插件Galileo等.也可自己研发).请求转化.跨域(CORS).其他功能通过lua编写插件实现 安装 安装包下载和官网示列:https://getkong.org/install/centos/ 安装前先安装PostgreSQL yum install https://download.postgresql.org/

基于aws api gateway的asp.net core验证

本文是介绍aws 作为api gateway,用asp.net core用web应用,.net core作为aws lambda function. api gateway和asp.net core的用处不废话,直接上操作步骤. 首先在asw的凭据管理中添加操作的用户和角色,步骤如下: 注意选择的策略名称 下载csv备用 安装aws的visual studio插件 加载备用csv文件 创建asw lambda funcation项目 代码如下: 1 using System; 2 3 using

【转】API Gateway 的路由和过滤(Zuul--1)

转自:https://blog.csdn.net/pengjunlee/article/details/87084646 Zuul是什么? API Gateway 是随着微服务(Microservice)这个概念一起兴起的一种架构模式,它用于解决微服务过于分散,没有一个统一的出入口来进行流量管理的问题. API Gateway可以作为整个系统对外的唯一入口,它是一个介于客户端和服务器之间的中间层,用来处理一些与业务无关的边缘功能,例如:智能路由.登录鉴权.流量监控与限流.网络隔离,等等. API

孢子框架-接口访问层、ESB、微服务API GateWay对比

如果从百度去搜索“接口访问层”你会发现主要是.NET里面的技术,叫做IDAL,其实是数据访问层接口.它的主要作用是兼容多种数据库.比如你定义一个标准接口,然后实现改接口的SqlServer访问和Oracle访问,那么利用IDAL就可以自由切换数据库.看.NET DEMO PetShop4,总共有22个项目.大体思想是3层,从Model.DAL.BLL,然后他在各层上又采用了工厂模式,把逻辑与实现想分离,比如以前BLL直接调用DAL就好了,但现在BLL却调用了IDAL,IDAL就是一个接口层,里面