首页 文章

使用Lambda代理集成在API网关的5XX响应中添加CORS头

提问于
浏览
1

我有一个与API网关的Lambda代理集成,工作正常 .

CORS直接在lambda代码中处理,并检查授权域列表 .

但现在的问题是在Lambda执行期间出现意外错误 .

在这种情况下,API Gateway会返回以下消息:

{
    message: "Internal server error"
}

使用 502 HTTP状态代码 . 不幸的是,在该响应中缺少 Access-Control-Allow-Origin 标头,这导致客户端出错 .

例如,超时也会发生同样的情况 . 然后HTTP状态代码为 504 但响应内容和缺少 Access-Control-Allow-Origin 是相同的 .

在权限问题的情况下也会出现同样的问题:如果API网关没有足够的权限来调用Lambda,则会返回 500 错误,但是再次没有任何标头 .

在Lambda错误的情况下, '*' 的固定值是可以的,但是如何以及在何处配置?

1 回答

  • 0

    使用这些值在您的处理函数中添加此回调,您可以在正文中添加适当的响应

    callback(null, {
          statusCode: 200,
          headers: {
              'Content-Type': 'application/json',
              "Access-Control-Allow-Headers": "*",
              "Access-Control-Allow-Origin": "*",
          },
          body: JSON.stringify({ "response": true })
        });
    

相关问题