如何通过jquery从Soap服务获取数据

本文关键字:服务 获取 数据 Soap 何通过 jquery | 更新日期: 2023-09-27 18:35:31

我想从Webservice(Soap)获取数据,但没有成功。我的服务 herehttp://icafe.ipos.vn/WSUitility/evsServiceUtility.svc?wsdl
我使用 jquery 请求服务,代码如下

    var soap = "<s:Envelope xmlns:s='"http://schemas.xmlsoap.org/soap/envelope/'">" +
        "<soap:Body>" +
        "<Test xmlns=''>" +
        "</Test>" +
        "</soap:Body>" +
        "</soap:Envelope>";
    $.ajax({
        url: 'http://icafe.ipos.vn/WSUitility/evsServiceUtility.svc?wsdl',
        method: 'post',
        data: soap,
        contentType: "text/xml",
        dataType: "xml",
        beforeSend: function (xhr) {
            xhr.setRequestHeader("SOAPAction", "urn:evsServiceUtility/Test1");
        },
        crossDomain: true,
        success: function(SOAPResponse) {
            alert('ok');
        },
        error: function(SOAPResponse) {
            alert('no ok');
        }
    });

我的服务:

    public string Test()
    {
        try
        {
            return "Successfull!";
        }
        catch (Exception ex)
        {
            return ex.Message;
        }
    }

我花了很多次来搜索和尝试许多解决方案,但它不起作用。
谁能帮我?

如何通过jquery从Soap服务获取数据

我想

你的数据类型可以是XML,这不是问题。问题是,您如何对data或参数进行编码?也许在浏览器控制台的 POST 请求中检查响应。

我在 c# 中挑选了一些东西来自动启用它,这在这里有很好的记录:http://encosia.com/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/

然后剩下一件事就是JSON.stringify()数据。那么 json 对象bhRequest对吗?

。然后跨浏览器,您必须实现 json2.js:https://github.com/douglascrockford/JSON-js

我没有看到您的名为肥皂的var在哪里使用。看起来它应该是发送到 SOAP 服务的"数据:",但那里有一个名为 bhRequest 的东西。

还要确保您允许 Phonegap 访问您的远程服务器

<access subdomains="true" origin="*" />

在您的配置中.xml。当您让事情正常工作时,您可以通过将其限制在您的 icafe.ipos.vn 域中来使其更具限制性。