我正在创建一个表单,用户应填写并提交。提交后,数据会到达电子邮件。
在S3上完成表单的部署。提交后,请求转到lambda中的函数。使用API网关将Lambda函数作为其他端点公开。
用邮递员命中可以成功,但是当我用chrome浏览器击中它时,却给了我一个错误。
在'端点Url上访问XMLHttpRequest,而在 从来源“ 提交的网站网址”提交(由lambda提供)” 点击”已被CORS政策阻止:“请求标头”字段 不允许访问控制允许起源 飞行前响应中的Access-Control-Allow-Header。
我在网上搜索,并且在Access-Control-Allow标头中添加Access-Control-Allow-Origin可以解决错误。这是在lambda中
"headers": {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': 'https://www.websiteDummy.com',
'Access-Control-Allow-Methods':'GET,HEAD,OPTIONS,POST',
'Access-Control-Allow-Headers':'Access-Control-Allow-Origin, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Headers',
"Access-Control-Allow-Credentials" : true
},
从发端,我的ajax请求
$.ajax({
type: "POST",
crossDomain: true,
headers: { 'Access-Control-Allow-Origin': '*' },
url: "deployed URL given by lambda/beta",
data: JSON.stringify(requestJson),
dataType: "json",
contentType :"application/json",
success: function(msg){
alert("Your query is registered with us");
document.getElementById("name").value="";
document.getElementById("email").value="";
document.getElementById("remarks").value="";
}
});
我不明白问题出在哪里。如果有人甚至可以指出原因可能会有所帮助