Ответ Android-службы PhoneGap с использованием jQuery НЕ приходит - PullRequest
1 голос
/ 28 января 2011

Мы разрабатываем небольшое приложение для хранения контактов с использованием платформы PhoneGap.У нас есть веб-сервис для выполнения операций по созданию, обновлению, чтению и удалению контакта.Мы используем следующий код для создания SOAP-запроса на создание контакта.Мы используем jQuery и jquery mobile http://code.jquery.com/mobile/1.0a2/jquery.mobile-1.0a2.js. Следующий код работает с симулятором iPhone и iPhone.Но мы даже не получаем отклик на Android и Android-эмулятор.Мы очень ценим вашу помощь.

var settings = {requestType:"soap1.1",
       error:function(XMLHttpRequest, textStatus, errorThrown){
       throw XMLHttpRequest.responseText;
     }};
 var oBuffer = new Array();
 settings.requestType = "soap1.1";
 settings.methodType = "POST";
 settings.contentType = "text/xml";
 settings.url = "http://example.com/checkdatpriceservice.asmx";
 settings.dataType = "text/xml";
 settings.nameSpace = "http://tempuri.org/";
 settings.methodName = "VerifyUser";

 oBuffer.push('<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">');
 oBuffer.push("<soap:Body>");
  oBuffer.push('<VerifyUser xmlns="http://tempuri.org/">');
    oBuffer.push('<email_id>abcd@example.com</email_id>');
    oBuffer.push('<password>user123</password>');
  oBuffer.push("</VerifyUser>");
   oBuffer.push("</soap:Body>");
 oBuffer.push("</soap:Envelope>");
 settings.requestData = oBuffer.join("");
 alert("requestData:" + settings.requestData);
 $.ajax({
   type: settings.methodType,
   cache: false,
   url: settings.url,
   data: settings.requestData,
   contentType: settings.contentType,
   dataType: settings.dataType,
   error: function(status){ alert("An error occurred in processing your request");},
   success: function(data, testStatus){
     alert('data = ' + data);
     $('#testp').html(data);
   },
   beforeSend: function(XMLHttpRequest){
     if (settings.requestType == "soap1.1" || settings.requestType== "soap1.2")
       XMLHttpRequest.setRequestHeader("SOAPAction",settings.nameSpace + settings.methodName);
     XMLHttpRequest.setRequestHeader("Content-Length",settings.requestData.length);
     XMLHttpRequest.setRequestHeader("Connection", "close");
   }
 });

Ответы [ 3 ]

0 голосов
/ 31 января 2011

Я попытался запустить logcat, но не нашел слова "Web", когда нажата кнопка, которая запускает веб-сервис.

0 голосов
/ 21 марта 2011

Попробуйте использовать settings.dataType = "xml" (вместо "text / xml").

«text / xml» не является допустимым dataType для вызова $ .ajax, поэтому интеллектуальное предположение могло выполняться на вашем iphone, а не на симе Android.

0 голосов
/ 31 января 2011

У меня тоже была такая же проблема. Когда я пытаюсь запустить index.html на Eclipse, все работает нормально. Но при попытке запуска на симуляторе нет данных ответа. Я обнаружил, что даже длина данных ответа равна нулю.

Было бы замечательно, если бы кто-то мог опубликовать решение или небольшой пример того, как phonegap может запустить веб-сервис, который принимает запрос мыльного XML и дает ответ в XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...