0

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

视图.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)
                });
    };
4

2 回答 2

1

我对这一切都很陌生,但你有没有试过使用。

$.ajax ({

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

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

于 2012-05-08T13:58:36.410 回答
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最好将这个坏小子放在代码中的任何位置,并确保一切正常。如果你的成功没有在前端被调用,我敢打赌错误在 django 中!找出在哪里。

  5. 您可以在 firebug 的 HTML 选项卡中查看错误,debug=True或者您可以/polling/通过浏览器请求并查看 django 错误屏幕。

使用其中的一些或任何一个应该可以让你在一个很好的地方解决你的问题 django dev server 使得解决这些错误变得非常容易 请做一些研究并找出许多可供你使用的调试工具!

于 2012-05-08T14:52:32.270 回答