我使用AWS API Gateway& amp;创建了REST API。 AWS Lambda和我配置CORS时遇到了这样的问题 - 我能够为OPTIONS方法配置CORS响应头,但对于GET方法没有。
我是根据Amazon documentation制作的,但是当我调用GET方法时,我没有看到所需的标题(Access-Control-Allow-Methods,Access-Control-Allow-Headers,Access-Control-Allow -Origin)作出回应。由于我在客户端出错:
无法加载#my_test_rest#:No' Access-Control-Allow-Origin'标头出现在请求的资源上。因此,不允许来源#my_test_rest_url#访问。
作为临时修复,我在Lambda函数的代码中硬编码所需的标题,但它看起来不像正确的解决方案,我想了解它为什么不适合我。我有什么想法,我做错了什么?
答案 0 :(得分:5)
由于您正在为方法使用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"})
});
(2)并在方法响应配置中将Access-Control-Allow-Origin
添加为200响应标头。