>웹 프론트엔드 >JS 튜토리얼 >JQuery 기반 WebService에 액세스하기 위한 코드(Java [Xfire]에서 액세스 가능)

JQuery 기반 WebService에 액세스하기 위한 코드(Java [Xfire]에서 액세스 가능)

高洛峰
高洛峰원래의
2017-01-24 09:28:091178검색

여러 분들의 사례를 자세히 살펴보고 문제를 발견했습니다. 우리 모두 알고 있듯이 WebService는 SOAP 프로토콜을 준수합니다. 예제가 모두 JSON 형식으로 매개변수를 전달하는 이유는 무엇입니까? net WebService는 JSON 형식과 호환되는 반면, Java는 표준 WebService이며 JSON과 호환되지 않습니다. 인터넷이 모든 사람에게 해를 끼친 것 같습니다. 그래서 WSDL 파일을 잘 이해하고 예제를 만들어 봤습니다. 아래에는 키 코드만 기재되어 있습니다.

$(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; 
}

WebService에 액세스하기 위한 JQuery 기반의 더 많은 코드(Java [Xfire]에서 액세스 가능)를 보려면 PHP 중국어 웹사이트를 참고하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.