如何为AWS API网关资源启用CORS

Gle*_*iko 3 amazon-web-services cors aws-lambda aws-api-gateway

我使用AWS API Gateway和AWS Lambda创建了REST API,当我配置CORS时遇到了这样的问题 - 我能够为OPTIONS方法配置CORS响应头,但是没有为GET方法配置.

我根据亚马逊文档制作了它,但是当我调用GET方法时,我没有看到必需的标题(Access-Control-Allow-Methods,Access-Control-Allow-Headers,Access-Control-Allow-Origin)作为响应.由于我在客户端出现错误:

无法加载#my_test_rest#:请求的资源上没有"Access-Control-Allow-Origin"标头.因此,不允许来源#my_test_rest_url#访问.

作为一个临时修复我在Lambda函数的代码中硬编码所需的标题,但它看起来不像正确的解决方案,我想了解它为什么不适合我.有什么想法我做错了什么?

Kha*_* T. 6

由于您正在为方法使用Lambda Proxy集成,因此您需要:

(1)提供Access-Control-Allow-Origin标头作为Lambda响应的一部分.例如:

callback(null, {
    statusCode: 200,
    headers: {"Content-Type": "application/json", "Access-Control-Allow-Origin": "*"},
    body: JSON.stringify({message: "Success"})
});
Run Code Online (Sandbox Code Playgroud)

(2)并Access-Control-Allow-OriginMethod Response配置中添加200响应头.