无法在 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 的情况下在 apigateway http_proxy 上添加 CORS?
使用 AWS CDK 为 AWS API 网关启用 CORS
在 Cloudformation 模板中为 API 网关启用 CORS DEFAULT 4XX/5XX