要解决Amplifyjs React应用程序在请求位于VPC后端的Lambda时出现CORS错误,可以尝试以下解决方法:
return {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*", // 允许所有来源的请求
"Access-Control-Allow-Headers": "*", // 允许所有请求头
"Access-Control-Allow-Methods": "*", // 允许所有请求方法
},
body: JSON.stringify(responseData),
};
使用AWS API Gateway配置CORS:如果您的Lambda函数通过API Gateway公开,您可以在API Gateway上配置CORS来解决此问题。在API Gateway控制台中选择您的API,然后选择“行为”选项卡。选择您的资源和方法,然后在“方法请求”部分下找到“CORS配置”。启用CORS,并配置适当的来源、请求头和方法。
使用AWS Amplify修改请求:通过修改Amplify请求,可以添加必要的CORS设置。例如,您可以使用Amplify.configure()方法来配置请求,如下所示:
import Amplify from 'aws-amplify';
Amplify.configure({
API: {
endpoints: [
{
name: 'MyAPI',
endpoint: 'https://api.example.com',
custom_header: async () => {
return {
'Access-Control-Allow-Origin': '*', // 允许所有来源的请求
'Access-Control-Allow-Headers': '*', // 允许所有请求头
'Access-Control-Allow-Methods': '*', // 允许所有请求方法
};
},
},
],
},
});
请确保将上述代码中的endpoint替换为您自己的Lambda函数的端点。
这些方法中的任何一种都可能解决CORS错误。请根据您的具体情况选择合适的解决方法。