当在浏览器中发送跨域请求时,如果服务器没有在响应中包含名为“Access-Control-Allow-Origin”的头部,浏览器会阻止访问响应。解决方法是在 AWS Lambda 函数中添加适当的响应头。
下面是一个示例代码,展示了如何在 AWS Lambda 中添加“Access-Control-Allow-Origin”头部:
exports.handler = async (event) => {
// 处理请求的代码...
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 from Lambda" })
};
return response;
};
上述示例代码中,在响应对象的headers
属性中添加了名为“Access-Control-Allow-Origin”的头部,值为“*”,表示允许所有来源的请求。如果你只想允许特定的来源,可以将*
替换为允许的来源 URL。
同时,还可以通过Access-Control-Allow-Headers
和Access-Control-Allow-Methods
头部来允许特定的请求头和请求方法。
请注意,如果你在 AWS API Gateway 中使用 Lambda 函数,你也需要在 API Gateway 的设置中启用 CORS(跨域资源共享)。这样,API Gateway 会自动将 Lambda 函数的响应中的headers
属性中的头部添加到响应中。