我使用aws cdk创建了一个lambda和apiggateway。from postman.
当我从浏览器发出post call时,我得到No "Access-Control-Allow-Origin"
。
所以我试图在API网关启用CORS,使用CDK。我是这样做的:
// users microservice api gateway
const apiGateway = new LambdaRestApi(this, "usersApi", {
restApiName: "Users Service",
handler: microServices.fn,
proxy: false,
});
// creating resources
const users = apiGateway.root.addResource("users");
users.addMethod("POST");
users.addCorsPreflight({
allowOrigins: ["*"],
allowHeaders: ["*"],
allowMethods: ["*"],
});
但我仍然得到No "Access-Control-Allow-Origin"
。
我错过了什么?如何通过cdk启用CORS ?
您的lambda必须在其响应中放置CORS标头。
例如:
return {
isBase64Encoded: false,
statusCode: 200,
body: JSON.stringify('success'),
headers: {
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'OPTIONS,POST',
}
}
参考-参见Enabling CORS support for Lambda or HTTP proxy integrations
部分
https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html