Читай и разбирай Django Simplejson HttpResponse JQuery - PullRequest
0 голосов
/ 14 ноября 2011

У меня Django возвращает HttpResponse типа JSON, который выглядит следующим образом:

{"lat": "41.1391666667", "alt": " 367401.6875", "lon": " 113.945472222"}

Оператор return из метода Django views.py выглядит следующим образом:

return HttpResponse( simplejson.dumps( {'lat' : lat , 'alt' : alt , 'lon' : lon} ) , content_type='application/json')

Я пытаюсьПрочитайте Json, используя JQuery, со следующим:

    <!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>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">

    $(document).ready(function(){

        // The JSON (simplejson) Django repsonse looks like:
        // {"lat": "23.5017777778", "alt": " 371405.03125", "lon": " 92.0223333333"}

        document.write('Getting JSON response...');

        $.getJSON(< my django url>,
            function(data) {
            alert(data['alt']);
            });
    });

</script>

</head>


<body>
</body>
</html>

Я очень новичок в Javascript / JQuery и пробовал решения из многих других постов здесь, но, похоже, не могу получить никакого ответа, используя мой код JQuery вышене отображается ни одна кнопка оповещения с отображением моей высоты).Я уточнил, что ответ JSON от Django выглядит нормально.Я был бы очень признателен за помощь в том, что я делаю здесь неправильно.Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 14 ноября 2011

Это решено - проблема была с открытием файла локально с помощью Chrome, в связи с этим вопросом: Access-Control-Allow-Origin Multiple Origin Domains? . Перемещение файла на внешний сервер позволило ему работать как нужно. Спасибо за помощь.

0 голосов
/ 14 ноября 2011

Используйте data.alt вместо. Начните с alert(data), чтобы убедиться, что данные достигают вас. У меня есть пример кода , который использует $ .getJSON () плюс немного базового кода jquery, чтобы начать работу.

Кроме того, текущим jquery является http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js (примечание: мой код - одна версия позади).

...