在使用API网关,Lambda和Cognito时,可能会遇到CORS(跨域资源共享)问题。CORS是由浏览器执行的一种安全机制,用于限制从不同域的客户端网页向服务器请求资源的能力。
以下是一个解决CORS问题的示例代码:
Resources:
MyApiGateway:
Type: AWS::ApiGateway::RestApi
Properties:
...
Cors:
AllowMethods: "'OPTIONS,POST,GET'"
AllowHeaders: "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'"
AllowOrigin: "'*'"
...
exports.handler = async (event) => {
const response = {
statusCode: 200,
headers: {
'Access-Control-Allow-Origin': '*', // 允许所有域名访问,也可以指定特定的域名
'Access-Control-Allow-Headers': 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token',
'Access-Control-Allow-Methods': 'OPTIONS,POST,GET' // 允许的HTTP方法
},
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
以上是一个简单的解决CORS问题的示例代码,具体实现还需要根据实际需求进行调整和配置。