问题描述
我的任务是使用API发送用户的个人数据。但是我必须用SOAP来实现它。在下面的代码中,我正在使用简单的jQuery + Ajax调度,但是却出现了错误
从源“ https://website.url”访问“ https://send.data.to.api/”处的XMLHttpRequest已被CORS策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上没有“ Access-Control-Allow-Origin”标头。
如果我理解正确,则服务器端阻止了我的主机尝试发送数据,并且服务器端应将访问主机授予主机。如果没有,该如何纠正错误?
jQuery(document).ready(function($){
$('#send-candidate-data').on('click',function(){
var personal_data = {
'refCode': ref_code,'name': firstName,'lastname': lastName,'phone': phone,'email': email,'comment': comment,'file': newFiles,'gender': selectedGender
}
var soapApiUrl = 'https://send.data.to.api/' + ref_code + '?=' + job_portal;
var payload = '<?xml version="1.0" encoding="utf-8"?>' +
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' +
'<soap:Body>' +
'<JobApplication xmlns="http://www.host.net/">' +
'<item>' +
'<RefCode>' + personal_data.refCode + '</RefCode>' +
'<SalutationGender>' + personal_data.gender +'</SalutationGender>' +
'<FirstName>' + personal_data.name +'</FirstName>' +
'<LastName>' + personal_data.lastname +'</LastName>' +
'<EmailAddress>' + personal_data.email +'</EmailAddress>' +
'<Phone>' + personal_data.phone + '</Phone>' +
'<ApplicantComments>' + personal_data.commet +'</ApplicantComments>' +
'</item>' +
'</JobApplication>' +
'</soap:Body>' +
'</soap:Envelope>';
var settings = {
"async": true,"crossDomain": true,"url": soapApiUrl,"method": "POST","headers": {
'POST': '/services/website.asmx HTTP/1.1','Host': 'host.job.io','Content-Type': 'text/xml; charset=utf-8','Content-Length': 'length','SOAPAction': 'http://www.host.net/AboutJobApplication','Access-Control-Allow-Origin': 'https://website.url',"cache-control": "no-cache"
},"processData": false,"data": payload,}
$.ajax(settings).done(function(response) {
conosole.log(response);
});
})
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)