如何通过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;
}
}
我花了很多次来搜索和尝试许多解决方案,但它不起作用。
谁能帮我?
我想
你的数据类型可以是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 域中来使其更具限制性。