Axios POST -> AWS HTTP API -> AWS Lambda获取浏览器错误:请求的资源上不存在“Access-Control-Allow-Origin”标头

ru9i0ody  于 9个月前  发布在  iOS
关注(0)|答案(1)|浏览(54)

发生了什么:

我有一个React应用程序,它使用Axios来访问AWS HTTP API(API Gateway),然后访问AWS Lambda以与AWS DocumentDB交互。Axios GET工作得很好。
当我使用Axios进行POST时,我在浏览器控制台中遇到以下错误:CORS策略已阻止从源“http://localhost:3000”访问“my_endpoint”处的XMLHttpRequest:对印前检查请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

我尝试过的:

我读过一些堆栈溢出的帖子以及一些AWS API/CORS文档。这已经通知了我有关preflight OPTIONS请求的信息,因此我在HTTP API中为我的端点添加了匹配的OPTIONS路由,并使用以下响应在Lambda中处理OPTIONS路由:

{
                    statusCode: 200,
                    headers: {
                        "Access-Control-Allow-Origin": "*",
                        "Access-Control-Allow-Methods": "POST",
                        "Access-Control-Allow-Headers": "Content-Type, Authorization",
                        "Access-Control-Allow-Credentials": true
                    }
                }

我已经尝试了这种响应的许多变体,使用不同的标题组合。我还尝试在每个路由的响应中添加头,而不仅仅是OPTIONS路由。
此外,我还在AWS中配置了我的HTTP API,以允许所有起源(*)和所有方法(*),并在允许头部分中包含所有头。

ev7lccsx

ev7lccsx1#

无法使用AWS HTTP API解决此问题,切换到REST API并遵循所有主要建议(启用cors,将正确的源标头添加到lambda响应)

相关问题