如何通过ajax调用特定的WSDL方法..我有以下服务:
http://newsite.wrapcompliance.org/FactoriesWS.wsdl
我正在尝试调用方法factCountByCountryID()
,该方法在给定3个字符的字符串时返回一个整数。到目前为止的代码如下:
<h3>jQuery Test</h3>
<script type="text/javascript">
function callService()
{
$.ajax
({
url: "http://newsite.wrapcompliance.org/FactoriesWS.wsdl",
type: "POST",
dataType: "html",
data: {"countryCd":"BGD"},
success: processData,
error: onError
});
return false;
}
function processData(xml)
{
alert(xml);
}
function onError(request, status, error)
{
alert("It didn't work!!!");
}
</script>
<form method="post" action="">
<input type="button" value="Do it now!!" onclick="callService(); return false"/>
</form>
答案 0 :(得分:1)
首先你的地址错了! WSDL仅描述服务,而不是服务实现本身。如果你喜欢这样,你将把你的需求指向一个文件,仅此而已。在wsdl中有一个服务描述: “http://apollov-dev.worlddata.com:8080/WrapSystem/services/FactoriesWS”
此外,您还必须发送有效的SOAP消息,即服务器端将使用的消息。 [在您的WSDL中描述]
某种教程: http://openlandscape.net/2009/09/25/call-soap-xm-web-services-with-jquery-ajax/
答案 1 :(得分:1)
使用jQuery.soap插件,它将为您处理SOAP部分。您需要先配置它,然后才能使用:
$.soap({
method: 'factCountByCountryID',
params: {
countryCd: 'BGD',
},
success: function (data) {
// do stuff with data
}
});