如何使用AJAX调用特定的Web服务方法?

时间:2013-03-20 15:07:35

标签: jquery html ajax database wsdl

如何通过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>

2 个答案:

答案 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
    }
});