我成功设置了带有 CORS 的 AWS API Gateway,当请求有效时,我有 200 个状态代码和 CORS 标头,这很好。
但是,当 AWS API Gateway 请求验证器检测到无效输入时,我的状态代码为 400,但未发送 CORS 标头...
这真的很不幸,因为客户端看到的是 CORS 错误而不是真正的 400 错误(例如,fetch
由于 CORS 错误,客户端无法区分 400 错误)。
我成功设置了带有 CORS 的 AWS API Gateway,当请求有效时,我有 200 个状态代码和 CORS 标头,这很好。
但是,当 AWS API Gateway 请求验证器检测到无效输入时,我的状态代码为 400,但未发送 CORS 标头...
这真的很不幸,因为客户端看到的是 CORS 错误而不是真正的 400 错误(例如,fetch
由于 CORS 错误,客户端无法区分 400 错误)。
我通过关于使用无服务器部署 CORS 服务和处理 API 网关引发的错误的讨论得出了这个答案:https ://github.com/serverless/serverless/issues/3896#issuecomment-333910525
基本上,您需要转到 API Gateway,选择您的 API,然后选择 Gateway Responses。然后,您可以为任何4XX
或5XX
响应添加标头。
这将允许从 API Gateway 引发的 400 个错误与 CORS 一起使用,因为您要在此处添加所需的标头。