我正在使用jQuery提出AJAX请求,我必须从表单中获取电子邮件并将其发送到服务器,然后将代码包装在IIFE中并使用$ .ajax()完成此操作。这是我的代码段:
(function () {
var url = "http://18.188.143.245/requests";
var userEmail = $("#main-form input");
var userEmailFooter = $("#footer-form input");
function sendData(opt){
var settings = {
"async": true,
"crossDomain": true,
"url": url,
"method": "POST",
"dataType": "json",
"headers": {
"Cache-Control": "no-cache",
"Access-Control-Allow-Origin": "http://18.188.143.245"
},
"processData": false,
"data": JSON.stringify(opt)
};
$.ajax(settings).done(function (response) {
console.log(response);
});
};
function emailSend(e) {
e.preventDefault();
if(userEmail.val() || userEmailFooter.val()) {
sendData({
content:"Sanchit S",
email:"test@abc.com",
mobileNumber:"1234567890"
});
}
userEmail.val("");
userEmailFooter.val("");
}
$("#main-form button").on("click", emailSend);
$("#footer-form button").on("click", emailSend);
})();
我正在使用邮递员对此URL发出请求,它似乎运行正常,并且在那里得到了适当的响应。但是该请求在Chrome和Firefox中均未通过,这表明跨域请求被阻止。这是 Firefox 中的错误消息:
跨域请求被阻止:“同源起源”策略禁止读取http://18.188.143.245/requests处的远程资源。 (原因:CORS标头“ Access-Control-Allow-Origin”缺失)。
跨域请求被阻止:同源策略禁止读取http://18.188.143.245/requests处的远程资源。 (原因:CORS请求未成功。)
Chrome 中的错误消息为:
无法加载http://18.188.143.243/requests:对预检请求的响应未通过访问控制检查:所请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问原点。
请提出我应该如何解决此问题。预先感谢!