PhoneGap Android getJSON

#android #json #cordova

#Android #json #кордова

Вопрос:

Я делаю свои первые шаги в PhoneGap с Android (почему вам все равно нужно выбирать платформу? Он должен быть кроссплатформенным!). Я пытаюсь вызвать службу RESTful, получить взамен некоторый JSON и вывести его на экран. Учебные пособия для этого невероятно сложно найти. Я использую следующий код:

 <!DOCTYPE HTML>
<html>
<head>
        <title>JSON Demo</title>
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript" src="jquery-1.6.4.js"></script>

        <script type="text/javascript">

$.getJSON('http://MyServerIP/json/GetJobDetails/717/MyKey?callback=?',  {
    success:function(data)
    {
            data = evalJSON(data);
            $('body').append('<strong>X </strong>');
    }, 
    error: function() 
    {
     $('body').append('<strong>Error </strong>'); 
    }
});
        </script>
</head>
<body>
test 10
</body>
</html>
 

… Но я не получаю ответа, ни успеха, ни ошибки. Сервер сообщает, что он был поражен, и вернул данные. Просмотр того же URL-адреса также возвращает данные. Почему в эмуляторе ничего не отображается?

Ответ №1:

Вы можете найти хороший учебник по Android jquery mobile здесь, в официальной вики PhoneGap здесь: http://wiki .phonegap.com/w/page/36868306/UI Development using jQueryMobile

Для вашей проблемы убедитесь, что эта строка находится в файле манифеста приложения phonegap: <использует-разрешение android:name=»android.permission.ИНТЕРНЕТ» >< /использует-разрешение >

Кроме того, вы можете установить заголовки сервера на: ‘Access-Control-Allow-Origin: *’

Удачи!

Ответ №2:

По какой-то причине success: и error: убивали его, т.е. это работает:

      <script type="text/javascript">

$.getJSON('http://MyServerIP/json/GetJobDetails/717/MyKey?callback=?', function(data)
    {
            data = evalJSON(data);
            $('body').append('<strong>X </strong>');        
});
        </script>
 

Комментарии:

1. Если вам все еще интересно, причина success error в том, что функции and не существуют в $.getJSON . Это сокращенная функция getJSON documentation . Чтобы использовать эти функции, вам нужно либо определить глобальные обработчики Ajax jQuery , либо использовать полную $.ajax функцию