如何捕获和查看JSON响应?

时间:2012-05-08 13:53:15

标签: django django-serializer

我有以下视图,我从模型中获取数据,然后将其序列化为JSON。

views.py

def polling(request):
    if request.is_ajax():
        data = UserReview.objects.filter(movie_id=request.GET['m_id'])
        serializers.serialize('json', data)
        return HttpResponse(data, mimetype='application/json')
    else:
        raise Http404

在客户端,我想立即显示此内容。我正在使用jQuery的函数getJSON来存档它。它不会显示任何内容,并且setTimeout也不起作用。但是当我使用firebug进行调试时,我得到了响应,但它没有调用alert()函数来查看数据。我一直试图找出问题可能已经有一段时间了。所以我想知道我的脚本是否有问题?

的javascript

function polling() {
    $.getJSON(  "/polling/", 
                {m_id: {{movie_info.id}} },
                function(data) {
                    alert(data)
                    setTimeout(polling, 5000)
                });
    };

2 个答案:

答案 0 :(得分:1)

我是所有这一切的新手,但你试过使用。

$。AJAX         ({

        url: "/Build/AllStatuses",
        dataType: 'json',
        success: function (buildstatuses)

这就是我以前用来调用json的方式,它似乎有效。

答案 1 :(得分:1)

一些可以帮助您找出错误的一般方法。

  1. 在前端非常宽松地使用console.log以确保一切按计划进行

  2. http://api.jquery.com/jQuery.ajax/评论中建议的回调功能,确保您至少记录错误

  3. https://docs.djangoproject.com/en/dev/topics/logging/设置一个调试记录器,确保你可以看到正在发生的事情以及django实际上以json的形式返回的内容。

  4. http://docs.python.org/library/pdb.html最好还是将这个badboy放在代码中的任何位置,并确保一切正常。如果你的成功没有在前端被调用我打赌错误是在django!找出答案。

  5. 如果debug=True您可以在firebug中的HTML标签中查看错误,或者您只需通过浏览器请求/polling/并查看django错误屏幕。

  6. 使用其中的一些或任何一个可以让你处在一个很好的地方来解决你的问题django dev服务器使得它很容易轻松解决这些错误请做一些研究并找出许多可用的调试工具!