首页 > 解决方案 > 无法通过 gzip 使用 API 网关

问题描述

我已经使用通过 Lambda 集成返回 JSON 的 API 设置了 API 网关。

当我尝试通过浏览器进行 GET 调用时,我 ERR_CONTENT_DECODING_FAILED在 Chrome 和NSURLErrorDomain:-1015Safari 上收到了错误消息。

当我使用 GET 调用时curl,我能够得到响应。

在四处搜索时,我发现问题出在 gzip 上。浏览器似乎发送了一个标头,表明它们接受 gzip,但无法处理响应。当我尝试使用 curl 命令--compressed时,我收到了类似的错误。

为了解决这个问题,我尝试在 API Gateway 上启用“启用内容编码”,最小大小为 0 字节。这并没有解决问题。

在尝试curl使用标志进行调用时-compressed,我传递了标题“Accept-Encoding”并将其设置为“”。这给了我一个有效的回应。

最终,我使用 AngularJS 进行 HTTP 调用。我尝试按上述方式设置标题,但 Angular 不允许。(给出错误Refused to set unsafe header "Accept-Encoding"

有人可以帮助我了解如何解决这个问题吗?

标签: aws-api-gateway

解决方案


推荐阅读