此问题通常是由于API Gateway未正确配置CORS导致的。您需要在API Gateway上为每个方法使用CORS设置。
以下是针对API Gateway和Lambda函数的示例代码:
在API Gateway中,为资源/方法添加CORS配置:
1.选择您的API Gateway REST API。
2.单击左侧窗格中的资源。
3.选择要添加CORS配置的资源。
4.在Resource Actions下拉列表中选择Enable CORS。
5.在显示的窗格中,选择接受任何来源的选项。
6.点击Enable CORS并确认您的更改。
在Lambda函数中,将以下代码添加到头信息中:
exports.handler = (event, context, callback) => {
const response = {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "Content-Type",
"Access-Control-Allow-Methods": "OPTIONS,POST,GET"
},
body: JSON.stringify({ message: "Hello world!" })
};
callback(null, response);
};
此代码将添加三个CORS头信息,允许来自所有来源的POST和GET请求使用JSON格式的内容。