cors - 使用 AWS API Gateway 请求验证器时启用 CORS

标签 cors aws-api-gateway request-validation

我使用 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, Gateway Responses

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

关于cors - 使用 AWS API Gateway 请求验证器时启用 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48710640/

相关文章:

javascript - 仅使用 JavaScript 的 CORS

java - Spring Security CORS 问题 : "OPTIONS http://localhost:8080/403 ()"

amazon-web-services - AWS lambda : Accessing request headers and body of different content types?

amazon-web-services - AWS Lambda 中的异步 HTTP 请求

.NET 4.0 上的 ASP.NET MVC2 : is [ValidateInput(false)] enough?

javascript - 如何在任何地方使用 Cors 来反向代理和添加 CORS header

amazon-web-services - API 网关 HTTP API CORS

amazon-web-services - AWS API Gateway : Log Query String in Access Log

asp.net - 关闭请求验证在 MVC 页面上不起作用

java - 即使请求正文中存在错误,BindingResult 也不会显示错误