0

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

4

2 回答 2

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/

于 2013-03-20T15:16:24.750 回答
1

使用将为您处理 SOAP 部分的jQuery.soap插件。您需要先配置它,然后才能使用:

$.soap({
    method: 'factCountByCountryID',
    params: {
        countryCd: 'BGD',
    },
    success: function (data) {
        // do stuff with data
    }
});
于 2013-03-20T15:22:40.023 回答