我使用Visual Studio向AWS发布了一个api,并使用了AWS无服务器应用程序项目的模板,现在我正在用邮递员测试方法,但是所有需要正文的get方法都返回一个错误,该错误在响应中提到了Cloudfront ,我不知道该问题是否与cloudfront有关,或者是否是AWS HTTP 1.1规范实现不允许带有主体的请求:
注意:我们要求客户提供带有正文的请求
RFC 7231 HTTP / 1.1规范指出以下内容: GET请求消息中的有效负载没有定义的语义。 在GET请求上发送有效内容正文可能会导致一些现有内容 拒绝请求的实现。
Sinon
所以我的问题是:
我在这里看到了几乎相同的问题:AWS GET request with body rejected by CloudFront
他们指向此文档:https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-lambda-non-proxy-integration.html表示如果您发送带有正文的get请求,它将返回400错误,但我得到的错误是403错误
那么您能再澄清一点吗?还是可以指向提到获取请求限制的亚马逊文档?
非常感谢
答案 0 :(得分:0)
在CloudFront上不允许使用带有Body的GET请求,如果发送正文,您将得到403,尽管RFC并未明确规定您应该拒绝带有Body的GET,但是CloudFront不允许这样做。在GET请求中传递正文的最佳选择是查询字符串(请求的最大长度,包括标头和查询字符串20,480字节)。
获取包含正文的请求 如果查看器的GET请求包含主体,则CloudFront会向查看器返回HTTP状态代码403(禁止)。