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

Enable CORS when using AWS API Gateway Request Validator

我使用 CORS 成功设置了 AWS API 网关,当请求有效时,我有一个 200 状态代码和 CORS headers,这很好。

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

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

这个问题可能与

有关

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

基本上,您需要转到 API 网关,select 您的 API,然后 select 网关响应。然后,您可以为任何 4XX5XX 响应添加 headers。

这将允许从 API 网关抛出的 400 个错误与 CORS 一起使用,因为您要在此处添加所需的 headers。