Hello Team我试图从WebCenter站点调用SubmitURL webservices,提交表单跨域(通过Jquery Ajax Call发出请求)但请求没有到达Server。
注意:从独立HTML文件(仅限IE)呼叫时,相同代码有效。
请在从一个域调用另一个domian并发布包含JSON格式数据的ajax请求时建议。我们是否需要对提交表单的任何代码进行任何更改。因为两个WEB服务URL都是HTTPS。
请查看随附的代码。
var captchaUrl="https://Captcha URL"; var submitUrl="https://Some submitform URL ";
function submitForm(formId, serviceUrl){
alert('Form ID :'+formId+' serviceUrl :'+serviceUrl);
alert('Convert to Json '+convertFormToJSON(formId));
jQuery.support.cors = true;
alert("Data :\n" + JSON.parse(convertFormToJSON(formId)));
$.ajax({
data: JSON.parse(convertFormToJSON(formId)),
cache:false,
url: serviceUrl,
type: 'POST',
success: function(jsonObj){
alert("url:: " + serviceUrl);
alert("responseCode:: " + jsonObj.responseCode);
alert("responseMessage:: " + jsonObj.responseMessage);
if(jsonObj.responseCode==0) {
$("#formDiv").html("<B>Your enquiry has been submitted sent. We will be in contact shortly</B>");
}else if(jsonObj.responseCode==-1) {
document.getElementById("captchaError").style.visibility = "visible";
document.getElementById("captchaError").innerHTML = "Incorrect, Please enter again";
document.getElementById("captcha").focus();
}
},
error: function(xhr,err) {
alert('Ajax readyState: '+xhr.readyState+'\nstatus: '+xhr.status + ' ' + err);
$('#formDiv').html("<B>We are unable to process your request at this time. Please try again later</B>");
}
});
}
function convertFormToJSON(formId){
var arr = $(formId).serializeArray();
var json = "";
var intFormat=false;
jQuery.each(arr, function(){
jQuery.each(this, function(i, val){
if (i=="name") {
json += '"' + val + '":';
if(val=="applicationId"){
intFormat=true;
}
} else if (i=="value") {
if(intFormat){
json += val.replace(/"/g, '\\"') + ',';
intFormat=false;
}else{
if(/\r|\n/.exec(val)){
json += '"' + val.replace(/(\r\n|\n|\r)/gm,"\\n") + '",';
}else{
json += '"' + val.replace(/"/g, '\\"') + '",';
}
}
}
});
});
json = "{" + json.substring(0, json.length - 1) + "}";
return json;
}
PLease建议解决方案或我们是否需要更改任何