请确保在APIGateway的CORS设置中将允许的方法(GET、PUT等)正确设置。此外,Lambda函数也必须在返回数据前添加CORS标头。
以下是一个Lambda函数示例,它在返回数据前添加了CORS标头:
import json
def lambda_handler(event, context):
response = {
"statusCode": 200,
"headers": {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "Content-Type",
"Access-Control-Allow-Methods": "OPTIONS,POST,GET"
},
"body": json.dumps({"message": "Hello World"})
}
return response
在这个示例中,我们在Lambda函数中添加了Access-Control-Allow-Origin
、Access-Control-Allow-Headers
和Access-Control-Allow-Methods
标头,这些标头指示APIGateway允许跨域资源共享。确保在标头中正确设置允许的HTTP方法、允许的来源和允许的头部。
如果你的CORS设置和Lambda函数已经正确配置,但仍然遇到问题,请检查是否在CloudFront等CDN上缓存了响应。在这种情况下,清除缓存或等待缓存过期可能会解决问题。