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