Я пытаюсь передать данные conatactform из Интернета в мою лямбда-функцию aws, но мой http-клиент axios сталкивается с ошибкой 400, заявляющей, что запрос является ПЛОХИМ ЗАПРОСОМ, и сообщением об ошибке: (Причина: заголовок CORS 'Access-Control-Allow-Оригины отсутствуют).Это код, который я сейчас использую.
-> код реагирования ...
const data = {
firstname,
lastname,
email,
message
};
axios.post('/prod/ContactFormLambda', data, {
headers: { 'ContentType': 'application/json' }
})
.then(response => {
console.log(response);
})
.catch(err => {
console.log(err.response);
});
-> лямбда-функция ...
'use strict';
console.log('Loading function');
const AWS = require('aws-sdk');
const sesClient = new AWS.SES();
const sesConfirmedAddress = " verified-email@email.com";
/**
* Lambda to process HTTP POST for contact form with the following body
* {
"email": <contact-email>,
"subject": <contact-subject>,
"message": <contact-message>
}
*
*/
exports.handler = (event, context, callback) => {
console.log('Received event:', JSON.stringify(event, null, 2));
var emailObj = JSON.parse(event.body);
var params = getEmailMessage(emailObj);
var sendEmailPromise = sesClient.sendEmail(params).promise();
var response = {
statusCode: 200
};
sendEmailPromise.then(function(result) {
console.log(result);
callback(null, response);
}).catch(function(err) {
console.log(err);
response.statusCode = 500;
callback(null, response);
});
};
function getEmailMessage (emailObj) {
var emailRequestParams = {
Destination: {
ToAddresses: [ sesConfirmedAddress ]
},
Message: {
Body: {
Text: {
Data: emailObj.message
}
},
Subject: {
Data: emailObj.subject
}
},
Source: sesConfirmedAddress,
ReplyToAddresses: [ emailObj.email ]
};
return emailRequestParams;
}
Что я могу сделать лучше, чтобы дойти до конца?