【发布时间】:2019-05-08 03:09:30
【问题描述】:
我最终决定尝试 AWS lambda 来创建很酷的无服务器功能。对于我的第一个,我决定创建一个发送邮件的简单函数。我计划能够向它发送邮件数据,然后我的功能将使用它们来发送邮件。很高兴知道,我的 lambda 必须可以从我的网站访问,我打算从我的前端逻辑中调用它。
很遗憾,当我尝试从我的网站触发我的 lambda 函数时遇到了 CORS 政策问题。但是,当我使用 cURL 从 CLI 启动它时,一切正常。
我使用 API-Gateway 样板创建了我的 lambda 函数。我是前端开发人员,我知道一些传统的 AWS 服务,但我第一次尝试使用 lambda 函数,所以我想我的配置有问题。
我想与您分享我当前的 lambda 配置。你可以在下面找到它:
这是我的 lambda 设计
这是我的 API-Gateway 配置
这是我的网关响应
此外,您可以在下面找到我的 lambda 代码以及每次我尝试调用我的 lambda 时遇到的错误。
const getRes = (status, body) => {
return JSON.stringify({
statusCode: status,
headers: {
"Content-Type": "text/plain",
"Access-Control-Allow-Origin" : "*"
},
body,
});
};
exports.handler = async (event, context, callback) => {
if (event.body !== null && event.body !== undefined) {
/*
** SEND MAIL WITH BODY PARAMS
*/
const response = getRes(200, 'Mail sent');
callback(null, response);
} else {
const response = getRes(500, 'Params missed');
callback(null, response);
}
};
CORS 策略已阻止从源“YYY”访问“XXX”处的 XMLHttpRequest:请求的资源上不存在“Access-Control-Allow-Origin”标头。
我试图了解为什么我继续遇到此问题而没有成功。我想我的 API-Gateway 配置有问题,但我找不到。
你有什么想法吗?
谢谢!
【问题讨论】:
标签: amazon-web-services aws-lambda serverless aws-serverless