Heim  >  Artikel  >  Web-Frontend  >  Code für den Zugriff auf WebService basierend auf JQuery (zugänglich für Java [Xfire])

Code für den Zugriff auf WebService basierend auf JQuery (zugänglich für Java [Xfire])

高洛峰
高洛峰Original
2017-01-24 09:28:091139Durchsuche

Ich habe mir die Beispiele mehrerer Leute genauer angesehen und das Problem gefunden. Wie wir alle wissen, entspricht WebService dem SOAP-Protokoll. Warum übergeben die Beispiele alle Parameter im JSON-Format? net WebService ist mit dem JSON-Format kompatibel, während Java ein Standard-WebService ist und nicht mit JSON kompatibel ist. Es scheint, dass das Netz allen geschadet hat. Deshalb habe ich die WSDL-Datei sorgfältig verstanden und ein Beispiel erstellt. Nachfolgend ist nur der Schlüsselcode aufgeführt.

$(function () { 
$("#btnWs").click(btnAjaxPost); 
}); 

function btnAjaxPost(event) { 
$.ajax({ 
type: "POST", 
contentType:"text/xml", 
url:"http://*****/WebServiceTest/services/HelloWorldService", 
data:getPostData(),//这里不该用JSON格式 
dataType:'xml',//这里设成XML或者不设。设成JSON格式会让返回值变成NULL 
success: function(xml) { 
//对结果做XML解析。 
//浏览器判断 (IE和非IE完全不同) 
if($.browser.msie){ 
$("#result").append(xml.getElementsByTagName("ns1:out")[0].childNodes[0].nodeValue+"<br/>"); 
} 
else{ 
$(xml).find("out").each(function(){ 
$("#result").append($(this).text()+"<br/>"); 
}) 
} 
}, 
error: function(x, e) { 
alert(&#39;error:&#39;+x.responseText); 
}, 
complete: function(x) { 
//alert(&#39;complete:&#39;+x.responseText); 
} 
}); 
} 
//定义满足SOAP协议的参数。 
function getPostData() 
{ 
//根据WSDL分析sayHelloWorld是方法名,parameters是传入参数名 
var postdata="<?xml version=\"1.0\" encoding=\"utf-8\"?>"; 
postdata+="<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/\">"; 
postdata+="<soap:Body><sayHelloWorld xmlns=\"http://tempuri.org/\">"; 
postdata+="<parameters>"+$("#txtName").val()+"</parameters>"; 
postdata+="</sayHelloWorld></soap:Body>"; 
postdata+="</soap:Envelope>"; 
return postdata; 
}

Weiteren Code basierend auf JQuery für den Zugriff auf WebService (zugänglich für Java [Xfire]) finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn