ajax-функция jQuery не работает в приложении Android PhoneGap - PullRequest
14 голосов
/ 14 сентября 2010

Я хочу получить доступ к открытому API через ajax в мобильном приложении, он отлично работает в iphone, но не работает в приложении Android PhoneGap:

returning error->"error message-null,typeerror-Result of expression 'data'[null] is not an object and error status-parsererror"

Требуется ли настройка браузераследовать.

Я хочу вызвать веб-сервис в приложении android-phonegap:

$.ajax({  
   url:'stringURL',  
   beforeSend: function(x) {      
     x.setRequestHeader('Authorization','username/pwd');  
   },  
   dataType:"xml",  
   contentType:'application/xml',  
   timeout:10000,  
   type:'POST',  
   success:function(data) {  
     alert(data);  
   },  
   error:function(XMLHttpRequest,textStatus, errorThrown) {     
     alert("Error status :"+textStatus);  
     alert("Error type :"+errorThrown);  
     alert("Error message :"+XMLHttpRequest.responseXML);  
   }
});

1 Ответ

2 голосов
/ 10 мая 2011

Кажется, что есть ошибка синтаксического анализа на выбранных данных. Вы хотите, чтобы XMLHttpRequest анализировал данные XML, поэтому извлеченный URL должен возвращать действительный XML. Существует несколько возможных причин, по которым это работает на одной, но не на другой платформе:

- Заголовки запроса браузера могут отличаться, что приводит к другому ответу сервера. Некоторые серверы могут выдавать ответы о состоянии HTTP 200 с некоторым сообщением об ошибке в случае возникновения проблем, которые не анализируются с действительным XML.

-Возвратный XML может быть проблематичным и хорошо анализируется на iPhone из-за пристрастий в браузере, но не работает на другой версии / варианте WebKit, которые использует Android.

-Полученные данные повреждены из-за других заголовков запроса, провайдера, прокси или других эффектов. Например, некоторые прокси обрабатывают только запросы HTTP / 1.0, а серверы с плохим поведением каждый раз обслуживают HTTP / 1.1 с кусочной кодировкой, поэтому XML будет поврежден заголовками чанков.

В целях отладки вы можете изменить запрос на текстовый запрос и показать извлеченные данные или даже сохранить их на SD-карту устройства, если это возможно, в вашем приложении. Затем вы можете проверить, что он не поврежден и является действительным XML.

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