Простое приложение PhoneGap для вызова простого веб-сервиса
Я новичок в PhoneGap, и я сделал простой веб-сервис в Microsoft Visual Studio 2010 двумя простыми способами. Я хочу вызвать метод из этой службы из моего приложения 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);
}
});
Я вызываю этот метод при нажатии кнопки, и я всегда получаю предупреждение с текстом "Успех", без "текста ответа".
Возможно, мой URL-адрес неверен, но я не знаю, какой URL-адрес я должен ввести. Это для метода "HelloWorld" без параметров, и я также не знаю, как вызвать метод с параметрами.
Любая помощь или объяснение, пожалуйста.
1 ответ
Глядя на документы (я не знаком с XUI), xhr предназначен для получения стандартной веб-страницы / веб-службы JSON, где при вызове стандартной веб-службы, которая будет возвращать ответ XML-мыла (это теги XML, а не HTML)). Вам нужно будет проанализировать этот ответ, чтобы получить именно тот результат, который вам необходим.
Легким путем было бы изменить ваш веб-сервис так, чтобы он возвращал ответ JSON, а затем использовать eval() в javascript, чтобы получить "типизированное" представление объекта. Пример XUI здесь.
Если вы новичок в этом, вы можете обнаружить, что JQuery имеет большую поддержку документов / сообщества, чем XUI.
Кстати, "Localhost" - это адрес обратной связи, который по сути означает "этот" компьютер, поэтому даже если бы он работал, он пытался подключиться к веб-сервису на мобильном устройстве (или эмуляторе), а не к вашему серверу, к которому вы обычно подключаетесь через URL.