【问题标题】:Localhost to AWS Lambda No 'Access-Control-Allow-Origin' Header本地主机到 AWS Lambda 没有“Access-Control-Allow-Origin”标头
【发布时间】:2020-10-08 13:41:04
【问题描述】:

我有一个本地服务器,用于测试未来远程托管服务器的通信及其与 Lambda 无服务器 API 的通信。我向 API 发出的请求是一个 GET 方法,我目前配置了以下内容来处理跨站点通信。

使用无服务器框架,我在serverless.yml 文件中启用了cors: true

此外,响应设置为返回以下内容:

response = {
        "statusCode": 200,
        "headers": {
            'Access-Control-Allow-Headers': 'Content-Type',
            'Access-Control-Allow-Origin': '*',
            'Access-Control-Allow-Methods': 'GET'
        },
        "body": {
            "message": "Authorization Successful!"
        }
    }

但是,从http://localhost:8000 到我在https://*id*.execute-api.us-east-1.amazonaws.com/prod/auth 托管的 API 的链接单击会传递错误消息:

Access to XMLHttpRequest at 'https://*id*.execute-api.us-east-1.amazonaws.com/prod/auth' from origin 'http://localhost:8000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

当我在 localhost:8000 上单击链接时获取此 API 时,是否应该向 GET 添加标头?我需要用这个AWS API Gateway 更新任何东西吗?从无服务器框架文档看来,cors: true 会负责这个设置

【问题讨论】:

    标签: cors aws-api-gateway serverless-framework


    【解决方案1】:

    您是否部署了 API 网关?确保在 API Gateway 中选择 GET 方法并在操作下拉列表中选择部署。通过查看您是否能够从 Postman 访问 API 网关,而不是浏览器,可以揭穿 CORS 问题。由于您返回 Access-Control-Allow-Origin:"*" 浏览器将允许该请求。

    【讨论】:

      猜你喜欢
      • 2016-01-21
      • 1970-01-01
      • 2017-09-19
      • 2015-04-02
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多