我是Phonegap的初学者,我用两种简单的方法在Microsoft Visual Studio 2010中创建了一个简单的Web服务。我想从我的Phonegap应用程序为Android平台调用该服务的方法。我正在使用xui库,这个方法xhr对我来说几乎是不可理解的。我已经阅读了很多关于该主题的帖子,但我无法弄清楚如何做到这一点。
我对网络服务的链接如下所示:http://localhost/testservice/Service1.asmx
。
这是我的网络服务代码:
[System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public int Calculate(int firsNumber, int secundNumber)
{
return firsNumber + secundNumber;
}
}
这是我应该测试该服务的方法:
function checkWebService() {
var url = new "http://localhost/testservice/Service1.asmx?op=HelloWorld";
x$('#test').xhr(url, {error: function(){alert("failed "+this.responseText)},
callback: function(){
alert("Success " + this.responseText);
}
});
我在点击按钮时调用此方法,我总是收到文本“成功”的警报,没有“响应文本”。
可能我的网址错了,但我不知道我打算输入哪个网址。 这是针对没有参数的“HelloWorld”方法,我也不知道如何使用参数调用方法。
请提供任何帮助或解释。
答案 0 :(得分:0)
查看文档(我不熟悉XUI),xhr用于获取标准的Web页面/ JSON Web服务,您可以在其中调用标准Web服务,该服务将返回XML soap响应(它们是XML标签而不是HTML)。您需要解析此响应以获得所需的结果。
一个简单的方法是更改您的Web服务以返回JSON响应,然后在javascript中使用eval()为您提供一个" typed"对象的视图。 XUI示例here。
如果您对此不熟悉,您可能会发现JQuery比XUI拥有更大的文档/社区支持。
BTW" Localhost"是一个环回地址,本质上意味着"这个"计算机,所以即使它确实有效,它也会尝试连接到移动设备(或模拟器)上的web服务,而不是通常通过URL连接到的服务器。