Простое приложение 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.

Другие вопросы по тегам