我们有一个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函数中做任何事情,因为这与在该级别之上发生的错误有关 .
1 回答
是的,您可以在AWS API网关级别设置它
登录AWS控制台,打开API网关服务,选择所需的网关 .
在左侧面板上,选择"Gateway Responses"(这将显示在所选网关下)
现在在右侧,选择"Default 5XX"
添加Cors的默认标头,如Access-Control-Allow-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Origin
保存更改并重新部署网关 .
Please refer this image to navigate to the desired section
希望能帮助到你 .