Javascript 读取和解析Django Simplejson HttpResponse JQuery

Javascript 读取和解析Django Simplejson HttpResponse JQuery,javascript,jquery,django,json,getjson,Javascript,Jquery,Django,Json,Getjson,我让Django返回JSON类型的HttpResponse,如下所示: {"lat": "41.1391666667", "alt": " 367401.6875", "lon": " 113.945472222"} return HttpResponse( simplejson.dumps( {'lat' : lat , 'alt' : alt , 'lon' : lon} ) , content_type='application/json') Django views.py方法的返回语

我让Django返回JSON类型的HttpResponse,如下所示:

{"lat": "41.1391666667", "alt": " 367401.6875", "lon": " 113.945472222"}
return HttpResponse( simplejson.dumps( {'lat' : lat , 'alt' : alt , 'lon' : lon} ) , content_type='application/json')
Django views.py方法的返回语句如下所示:

{"lat": "41.1391666667", "alt": " 367401.6875", "lon": " 113.945472222"}
return HttpResponse( simplejson.dumps( {'lat' : lat , 'alt' : alt , 'lon' : lon} ) , content_type='application/json')
我正在尝试使用JQuery读取Json,如下所示:

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

$(文档).ready(函数(){
//JSON(simplejson)Django repsonse如下所示:
//{“lat”:“23.50177778”,“alt”:“371405.03125”,“lon”:“92.0223333333”}
write('获取JSON响应…');
$.getJSON(,
功能(数据){
警报(数据['alt']);
});
});

我对Javascript/JQuery非常陌生,在这里尝试过许多其他帖子中的解决方案,但似乎无法通过上面的JQuery代码得到任何响应(我没有看到任何显示高度的警报按钮)。我已经验证了Django的JSON响应看起来很好。我真的很感激你能帮我解决我的问题。非常感谢。

请改用
data.alt
。从
警报(数据)
开始,以确保您收到数据。我有一个使用$.getJSON()加上一点基本jquery代码的示例


另外,当前jquery是
http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js
(注意:我的代码落后一个版本)

这已解决-问题在于使用Chrome在本地打开与此问题相关的文件:。将文件移动到外部服务器可使其按需工作。谢谢您的帮助。

您是否遇到JS错误?你能从FireBug或Chrome开发工具中看出有人向django提出任何请求吗?如果是这样的话,你会期望得到什么样的回应?在回调函数中尝试console.log(数据),看看它是怎么说的。需要注意的一点是,如果后端抛出任何类型的错误,回调函数将不会被触发——这经常会让jQuery ajax的新用户感到困惑。感谢您的响应——使用FireBug,我可以看到正在发出请求。我可以在侧面图下看到“获取http://200 OK 97ms。还有关于响应头的信息,包括内容类型application/json。但是FireBug中的响应选项卡是空的?如果我亲自访问URL,它将返回格式良好的JSON响应。还有其他想法吗?感谢您的提醒,在Google Chrome开发工具中,我遇到了错误“XMLHttpRequest无法加载http://”。访问控制不允许源站http://允许源站响应选项卡为空?这听起来像是你的问题,就在那里。当您直接访问请求时,请求是如何发出的,与使用ajax是如何发出的,两者之间必须存在某种差异。您确定要传入相同的参数吗?您的问题与此相同:感谢您的响应-我尝试了data.alt和alert(data)两种方法,但仍然没有收到包含数据的弹出窗口。我已经更新到您在回复中包含的最新jquery。Firebug说请求是针对我的URL的,但我没有收到响应,只是标题信息。