Jquery Ajax调用从跨域调用Web服务但无法向Web服务服务器发送请求

时间:2013-10-03 10:05:10

标签: jquery ajax

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建议解决方案或我们是否需要更改任何

0 个答案:

没有答案