【问题标题】:Trouble enabling CORS through API gateway for lambda function通过 API 网关为 lambda 函数启用 CORS 时遇到问题
【发布时间】:2017-09-19 17:13:26
【问题描述】:

诚然,我以前从未使用过 CORS,也不确定自己在做什么。

我正在尝试从网站调用 Lambda 函数,而无需通过 JSONP 进行跨域请求。我尝试按照this 教程通过 API 网关启用 CORS,但它似乎不起作用。我创建了一个 GET 方法,测试了它是否可以通过 Postman 工作,然后使用操作下拉菜单中的启用 CORS 选项。我正在使用 AJAX 发送请求,如下所示

$.ajax({
        url: myEndpoint,
        type: "GET",
        crossDomain: true,
        dataType: "json",
    })

作为回应,我收到了错误

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access"

有人知道如何解决这个问题吗?

【问题讨论】:

  • 在预检期间还是在实际请求期间?您是否读过“但是,您必须依靠后端返回 Access-Control-Allow-Origin 标头,因为代理集成的集成响应已禁用。”?
  • 该错误是在 chrome 上记录到控制台的内容。我如何判断它是在飞行前还是在实际请求期间?文档中的那一行让我有点困惑,因为我看到的另一个来源有一些关于不需要编辑您的 lambda 服务的评论,尽管我猜这可能是错误的。那么我是否只需要在我的 lambda 函数中将 CORS 标头添加到我的响应中?
  • 如果有帮助,我的 Lambda 函数正在接收和处理请求,它只是永远不会返回给用户的响应。
  • 忽略我之前的两个 cmets,在我的 lambda 响应中添加一个“Access-Control-Allow-Origin”标头修复了它。感谢您的帮助!
  • 抱歉离开了。可以检测到预检,因为它是一个 OPTIONS 请求。我猜网关正确处理所有这些,但依赖后端为实际请求添加 CORS 标头。

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


【解决方案1】:

如果您使用代理,那么您的 Lambda 集成响应必须具有“Access-Control-Allow-Origin”标头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 2019-07-03
    • 2021-10-22
    • 1970-01-01
    • 2020-12-17
    • 2016-05-18
    • 2020-05-22
    相关资源
    最近更新 更多