PhoneGap и спокойный веб-сервис - PullRequest
1 голос
/ 21 февраля 2012

Я хочу получить данные из полноценного веб-сервиса, который возвращает XML. Я использую телефонный разрыв.

Я попробовал этот код, он дает мне результат в InternetExplorer, но не в моем приложении пробела телефона!

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
       <title>PhoneGap</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
   <script type="text/javascript" charset="utf-8" src="js/Config/phonegap-0.9.3.js"></script>


   <link rel="stylesheet" href="css/jquery/jquery.mobile-1.0a1.min.css" />
   <link rel="stylesheet" href="css/Style.css" />
   <script src="js/Config/jquery-1.4.3.min.js"></script>
   <script src="js/Config/jquery.mobile-1.0a1.min.js"></script>

<script type="text/javascript">

function getDescription() {
var url = 'http://localhost/prestashop/api/customers/2';
req = new XMLHttpRequest();

req.onreadystatechange = processRequest;
req.open("GET", url, true);
req.send(null);
}
function processRequest() {
if (req.readyState == 4) {

if (req.status == 200) {
alert ( "Not able to retrieve description+"+req.responseText );
parseMessages();
} else   {
alert ( "Not able to retrieve description+"+req.responseText+"vide" );
}
}
}
function parseMessages() {
response  = req.responseXML.documentElement;
itemDescription = response.getElementsByTagName('lastname')[0].firstChild.data;
alert ( itemDescription );
}
</script>


</head>
<body>
<button onClick="getDescription()">Ajax call</button>
</body>
</html>

возвращает req.status = 0 !!

Ответы [ 3 ]

0 голосов
/ 23 февраля 2012

Какой результат вы получаете в Chrome? Chrome и браузер Android (вместе с Safari и браузером BlackBerry) основаны на WebKit.

Вы добавили источник доступа к файлу phonegap.xml?

Есть ли какая-то особая причина, по которой вы не используете jQueryMobile для своего AJAX? Вы можете получить успешный ответ, используя jQM?

0 голосов
/ 15 марта 2012

Попробуйте с

var url = 'http://localhost/prestashop/api/customers/2?PHP_AUTH_USER="password"&ws_key="login"';
0 голосов
/ 21 февраля 2012

Попробуйте изменить эту строку:

if (req.status == 200) {

в:

if (req.status == 200 || req.status == 0) {

на мобильных устройствах, работающих по протоколу file: // при успешном запросе вы часто получаете статус 0.

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