我想从Webservice(Soap)获取数据,但它不成功。我在这里的服务http://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;
}
}
我花了很多次去搜索和尝试很多解决方案,但它没有用 任何人都可以帮助我吗?
答案 0 :(得分:0)
我认为您的数据类型可以是XML,而不是问题。问题是,您如何编码data
或参数?也许在浏览器的控制台中检查POST请求中的响应。
我在c#中选了一些东西来自动启用它,这里有很好的记录: http://encosia.com/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/
然后还有一件事要做JSON.stringify()
数据。那么bhRequest
是一个json对象吗?
...然后跨浏览器你必须实现json2.js: https://github.com/douglascrockford/JSON-js
答案 1 :(得分:0)
我没有看到你的var名为soap的用途。它看起来应该是发送到SOAP服务的“data:”,但是那里有一些叫做bhRequest的东西。
还要确保您允许使用
访问远程服务器的Phonegap<access subdomains="true" origin="*" />
在config.xml中。当您开始工作时,可以通过将其限制为icafe.ipos.vn域来限制它。