Итак, api-gw-->lambda-->ses работает нормально, и даже мои команды почтальона и завитка для запуска конечной точки API работают нормально. Проблема в том, что когда я пытаюсь выполнить это из Chrome с помощью ajax, он продолжает выдавать «Доступ к XMLHttpRequest по адресу ~api.us-east-1.amazonaws.com/test/contact-us from origin» http:// 127.0.0.1:5500' заблокирован из-за ошибки CORS policy'. Firefox говорит: «Запрос перекрестного происхождения заблокирован: политика одного и того же происхождения запрещает чтение удаленного ресурса по адресу ~.us-east-1.amazonaws.com/test/contact-us. (Причина: заголовок «access-control-allow-headers» не разрешен в соответствии с заголовком «Access-Control-Allow-Headers» из предпечатного ответа CORS)».
Перепробовал много вещей для последние 2 дня безуспешно
- html/jquery код
- лямбда-код (python)
- снимки экрана Chrome и инструмента разработчика FF.
Код: Выделить всё
function submitToAPI(e) {
e.preventDefault();
var URL = "https://xxxx.us-east-1.amazonaws.com/test/contact-us";
var Namere = /[A-Za-z]{1}[A-Za-z]/;
if (!Namere.test($("#name-input").val())) {
alert ("Name can not less than 2 char");
return;
}
var mobilere = /[0-9]{10}/;
if (!mobilere.test($("#phone-input").val())) {
alert ("Please enter valid mobile number");
return;
}
if ($("#email-input").val()=="") {
alert ("Please enter your email id");
return;
}
var reeamil = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,6})?$/;
if (!reeamil.test($("#email-input").val())) {
alert ("Please enter valid email address");
return;
}
var name = $("#name-input").val();
var phone = $("#phone-input").val();
var email = $("#email-input").val();
var desc = $("#description-input").val();
var data = {
name : name,
phone : phone,
email : email,
desc : desc
};
$.ajax({
type: "POST",
url : "https://xxxx.us-east-1.amazonaws.com/test/contact-us",
/* dataType: "jsonp", */
crossDomain: "true",
headers: {
'Access-Control-Allow-Origin': 'http://127.0.0.1:5500',
'Access-Control-Allow-Methods': 'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT',
'x-amz-apigw-id': 'xxxxxx=',
'Access-Control-Allow-Headers': 'Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'
},
contentType: "text/html",
data: JSON.stringify(data),
success: function () {
// clear form and show a success message
alert("Successfull");
document.getElementById("contact-form").reset();
location.reload();
},
error: function () {
// show an error message
alert("UnSuccessfull");
}});
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78177447/could-not-do-post-from-html-to-api-gateway-due-to-cors-error[/url]
Мобильная версия