使用AWS API网关请求验证程序时启用CORS

Yve*_* M. 5 request-validation cors aws-api-gateway

我成功地使用CORS设置AWS API Gateway,当请求有效时,我有200状态代码和CORS头,这很好.

但是当AWS API网关请求验证程序检测到无效输入时,我的状态代码为400但不发送CORS标头...

这真的很不幸,因为客户端看到了CORS错误而不是真正的400错误(例如fetch客户端由于CORS错误而无法区分400错误).

此问题可能与从AWS API网关请求验证程序获取详细错误消息有关

Eri*_*c C 7

我通过关于使用无服务器部署 CORS 服务和处理从 API 网关抛出的错误的讨论得出了这个答案:https : //github.com/serverless/serverless/issues/3896#issuecomment-333910525

基本上,您需要转到 API 网关,选择您的 API,然后选择网关响应。然后,您可以为 any4XX5XXresponse添加标头。

API 网关、网关响应

这将允许从 API Gateway 抛出的 400 个错误与 CORS 一起使用,因为您在此处添加了所需的标头。

  • 美丽,这正是我一直在寻找的。只是给其他人的说明,这需要几分钟才能生效。您还可以通过最初使用自定义消息修改错误 JSON 响应来测试它是否按预期进行响应。 (2认同)