【问题标题】:AWS Lambda function API end point - 403 and 415 errorAWS Lambda 函数 API 端点 - 403 和 415 错误
【发布时间】:2019-05-29 10:09:43
【问题描述】:

我已经设置了一个 AWS Lambda 函数,并尝试从前端进行访问。它在浏览器中运行良好,并返回我期望的响应。当我尝试从localhost 访问它时,我得到一个 403。我尝试按照herehere 概述的步骤进行操作(没有像一些评论者提到的那样吹走我的整个 API),但无济于事。我在所有更改后重新部署。启用 CORS 后,我不再收到 403,而是收到 415。不确定下一步该怎么做,因为 Cloudwatch 日志中没有任何内容。

更多细节:我正在使用 Lambda:

我有一个 GET 方法(启用 CORS 后出现“选项”):

当我点击“启用 CORS”时会发生以下情况:

因为它在屏幕截图中被截断,这里是完整的标题列表:'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'

这是我的方法响应:

这是我在前端调用 lambda 的方式:

sendVerificationCode() {
    let data = {
      paramOne: x,
      paramTwo: 'string',
      paramThree: 'string'
    }

    return this.get('ajax').request('https://something.execute-api.us-east-1.amazonaws.com/beta/', {
      host: 'https://something.execute-api.us-east-1.amazonaws.com',
      method: 'GET',
      data: data
    }).then((response) => {
      console.log('response', response)
    });
  }

这是我遇到的错误。第一个错误,在我启用 CORS 之前:

在我启用 CORS 之后:

【问题讨论】:

  • Hii kira 我认为在您应该使用 lambda 代理并手动发送 cors 标头之前已经问过这个问题,就像接受的答案中提到的那样
  • 您好!你能解释一下为什么我应该使用 Lambda 代理而不是 Lambda 吗?一定有办法用 Lambda 做到这一点。
  • 我这样说是因为我自己在没有 lambda 代理的情况下尝试了很多,经过很多努力我失败并切换到 lambda 代理,其他人也发生了同样的事情

标签: amazon-web-services aws-lambda aws-api-gateway


【解决方案1】:

CORS 对 API 网关有点挑剔,您是否尝试过在根目录和方法上都启用它?这以前对我有用。您也可以尝试为您的 api 网关项目下载 javascript SDK 并使用它来访问路由,因为它为您设置了所有正确的设置。

【讨论】:

  • 感谢您的提示!由于某种原因,在根上禁用的选项被禁用。
猜你喜欢
  • 2016-01-11
  • 2017-04-07
  • 2020-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
相关资源
最近更新 更多