AWS API网关返回400错误请求,但Postman正常工作

Jus*_*tin 1 javascript amazon-web-services sendgrid aws-lambda aws-api-gateway

我正在使用SendGrid Parse API(https://sendgrid.com/blog/parse-webhook-tutorial/)将传入的电子邮件正文过帐到AWS API Gateway。

当我将webhook发送到requestb.in时,我得到的响应很好。

当我使用Postman伪造对服务器的请求时,我得到了正确的响应。

但是,当我告诉SendGrid将Webhook发送到我的服务器时,我收到来自SendGrid的400错误响应错误,并且我的服务器再也没有受到攻击(因此,我认为API网关抛出了该错误)。

有什么简单的我想念的吗?我尝试设置CORS,但不是(或者我设置错了)。

我很沮丧

谢谢!

小智 5

我刚刚调试了一个API网关问题,该问题引发了一个与CORS相关的错误消息,并且该请求从未到达我的服务器,但真正的问题是来自于请求中的数据。

因此,我发现,如果请求存在任何问题,API网关将抛出默认400错误,表明没有Allow-Access-Control-Origin标头。这可以使您认为CORS存在问题。如果您设置MOCK GET请求,在浏览器中发出请求,并在浏览器开发人员工具的“网络”标签中确认它返回200,则可以消除CORS的问题。

一旦我知道它仅来自POST请求,就必然是数据问题。我发送的JSON哈希值未经过字符串化处理。因此解决方案是使用JSON.stringify(request_data)

我会检查请求的数据格式。如果您将请求和回答添加到您的问题中,我也许可以提供进一步的帮助。