JS調用webservice的兩種方式

協議確定是使用http協議,由於soap協議自己也是基於http協議。期中第二種方式:只有webservice3.5之後版本才能夠成功web

 

第一種方式:構造soap格式的body,注意加粗的黃色標識,好比:json

createXMLHttpRequest();
    var data;
    data = '<?xml version="1.0" encoding="utf-8"?>';
    data = data + '<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/">';
    data = data + "<soap:Header>"
    data = data + '<UserSoapHeader xmlns="http://tempuri.org/">'
    data = data + "<UserName>admin</UserName>"
    data = data + "<Pwd>faaaa</Pwd>"
    data = data + "</UserSoapHeader>"
    data = data + "</soap:Header>"
    
    
    data = data + '<soap:Body>';
    data = data + '<'+method+' xmlns="'+_Namespace+'">';
    for(var i=0;i<variable.length;i++)
    {
      data = data + '<'+variable[i]+'>'+value[i]+'</'+variable[i]+'>';
    }
    data = data + '</'+method+'>';
    data = data + '</soap:Body>';
    data = data + '</soap:Envelope>';
      
    xmlhttp.onreadystatechange=handleStateChange;
    xmlhttp.Open("POST",url, true);
    xmlhttp.SetRequestHeader ("Content-Type","text/xml; charset=utf-8");
    xmlhttp.SetRequestHeader ("Content-Length",getlen(data));
    xmlhttp.SetRequestHeader ("SOAPAction",_Namespace+method);
    xmlhttp.Send(data);
    app

第二種方式(我沒使用過,想着不會成功):構造json格式的body,好比:url

createXMLHttpRequest();   spa

urlhttp://....../a.asmx/webservice方法名xml

body使用json數據格式utf-8

xmlhttp.SetRequestHeader ("Content-Type","application/json; charset=utf-8");
    xmlhttp.SetRequestHeader ("Content-Length",getlen(body));get

相關文章
相關標籤/搜索