无法在 apigateway 中正确启用 cors

Posted

技术标签:

【中文标题】无法在 apigateway 中正确启用 cors【英文标题】:Can not enable cors properly in apigateway 【发布时间】:2018-09-13 03:23:22 【问题描述】:

我正在使用 API 网关,这是我的 api 网关:

所以它只是一种post方法,更多细节如下:

因此,当我运行 enable cors 时,我收到以下错误:

该问题与缺少 og application/json on 200 response 返回方法响应有关,如下链接所述:

Fail to enable CORS for API Gateway functions

为了解决这个问题,我尝试手动添加它

现在我添加了 application/json 为空。但是当我尝试启用 cors 时,我仍然得到指定的无效状态代码。知道如何解决吗?

【问题讨论】:

【参考方案1】:

要解决此问题,方法响应 HTTPS 状态必须是代理

在集成请求设置中取消选中并在成功更新后再次选中“使用 Lambda 代理集成”。

之后方法响应应该被改变,看起来像这样:

【讨论】:

【参考方案2】:

在将我的 API 连接到 Lambda 函数之前,我在尝试 MOCK 响应时遇到了同样的问题。我已经在资源级别将“启用 API 网关 CORS”标记为选中,但在发送 XMLHttpRequest 时仍然出现 CORS 错误。

我在“方法响应”中添加了标题“Access-Control-Allow-Origin”,然后在“集成响应”下将“Access-Control-Allow-Origin”的值设置为“*”。这种方法解决了这个 CORS 问题。

【讨论】:

以上是关于无法在 apigateway 中正确启用 cors的主要内容,如果未能解决你的问题,请参考以下文章

为 Lambda 代理集成启用 CORS 支持的问题

如何在不设置 lambda 的情况下在 apigateway http_proxy 上添加 CORS?

使用 AWS CDK 为 AWS API 网关启用 CORS

在 Cloudformation 模板中为 API 网关启用 CORS DEFAULT 4XX/5XX

如何在 API Gateway 和 React 应用程序之间启用 AWS 中的 CORS 策略?

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