amazon-web-services - 默认响应标头:带代理集成的 AWS API Gateway
问题描述
我们有一个 Angular SPA 前端,它通过 AWS API 网关与托管在 Lambda 函数中的 .Net Web API 进行通信。此配置要求我们的 API 网关使用与 Lambda 的代理集成。
一般来说,这很好用。我们在 API 中启用了 CORS,正常的请求和响应按预期流动。
但是,当发生破坏 API 网关或 .Net Lambda Wrapper 的事情时,例如超过网关的(不可配置的)30 秒超时,或超过 Lambda 的最大响应大小,来自 API 网关的响应消息不包含 CORS标题。结果,无论实际错误如何,我们的前端都会记录一个 CORS 错误。
是否有某种方法可以将 API 网关配置为始终返回默认的 CORS 标头?
请注意,这发生在我们的代码之外——在 C# lambda 函数内部我无能为力,因为这与发生在该级别之上的错误有关。
解决方案
是的,您可以在 AWS API Gateway 级别进行设置
- 登录 AWS 控制台,打开 API Gateway 服务,选择您想要的网关。
- 在左侧面板上,选择“网关响应”(这将出现在您选择的网关下)
- 现在在右侧,选择“默认 5XX”
- 为 Cors 添加默认标头,例如 Access-Control-Allow-Headers、Access-Control-Allow-Methods、Access-Control-Allow-Origin
- 保存更改并重新部署网关。
希望能帮助到你。
推荐阅读
- java - 为英语以外的语言创建 Google Speech to Text 语言环境
- c# - 如何使用 smartsheet C# SDK 更改 smartsheet 的所有权?
- swift - 快速地图范围:无法在合理的时间内对该表达式进行类型检查
- python - Spyder 中的编辑器键盘快捷键在命令窗口中不起作用
- go - 如何从状态为 101 切换协议的响应中读取正文
- python - 为什么 Pycharm 中的输入函数在输入字符串时不起作用?
- sas - SAS:如何避免多个左连接?
- reactjs - 热模块重新加载不适用于我的 nextjs 应用程序
- php - 如何传递多个数组作为响应 - Laravel API
- xaml - xamarin 表单 - 如何整理布局 - listView 的右下角