AWS 上的 CORS 与 LAMBDA python Rest 无服务器

问题描述 投票:0回答:1

我已经为项目环境设置了一切(RDS db、客户端的 S3 + Cloudfront 和后端的 AWS Lambda python)。 我还在 Flask 应用程序的服务器代码中设置了 cors 配置。

CORS(app, resources={r"/*": {"origins": URL}}, supports_credentials=True)

在 API Gateway 中,我为它们创建了 get、post、put、delete 和设置 CORS。 在客户端上我得到:

已获得从源 [CLIENT URL] 在 [API SERVER URL] 获取数据的权限 被 CORS 策略阻止:对预检请求的响应未通过 访问控制检查:它没有 HTTP 正常状态。

有人知道我错过了什么吗?

aws-lambda cors aws-api-gateway
1个回答
0
投票

您需要在API网关控制台中允许cors。 AWS 文档。 然后你需要

Deploy
api。 gateway example

知道您在 lambda 中使用 Flask,我希望网关路由是

/{proxy+}
。在这种情况下,有必要为所有路由路径创建一个
OPTIONS
处理程序以允许预检。 查看相关解决方案。但基本上是这样的:

@app.route("/", methods=["OPTIONS"]) def my_preflight_cors(): resp = flask.Response("") resp.headers['Access-Control-Allow-Origin'] = '*' return resp
    
© www.soinside.com 2019 - 2024. All rights reserved.