使用Ajax调用时获取Django调试信息?

时间:2009-08-29 17:00:07

标签: jquery django

使用jQuery进行Ajax调用时,是否有一种获取Django提供的调试信息的好方法?现在,当我打电话时,我只是在python runserver窗口中看到一个http / 200服务器错误,但因为调用是通过javascript进行的,所以我没有得到包含所有信息的调试页面。

5 个答案:

答案 0 :(得分:3)

您可以检查返回到jQuery ajax调用的响应的内容。使用像Firebug这样的工具可以很容易。

Django仍将返回调试页面,只是它响应ajax调用而不是常规浏览器请求。

这通常是让你的东西处理常规请求的好方法,然后只有在你确定服务器端代码正常工作后才“ajaxify”它们。

答案 1 :(得分:1)

您可以使用此代码段:http://www.djangosnippets.org/snippets/650/获取明文回溯,以便在firebug中查看,而不是HTML。

答案 2 :(得分:1)

当您收到类似的AJAX错误时,可以使用从服务器返回的调试/错误文档替换当前文档内容。例如,您可以执行以下操作:

$.ajax({
    url: 'failing_controller/',
    type: 'POST'
})
    .fail(function (jqXHR, textStatus, errorThrown) {
        document.open();
        document.write(jqXHR.responseText);
        document.close();
    })
    .success(function (data, textStatus, jqXHR) {
        // ... handle data ...
    });

这在开发和调试过程中非常有用,因为它可以让您实时检查服务器状态。您可能希望在生产环境中使用更合适的方法替换故障处理程序。

答案 3 :(得分:0)

可能最简单的方法是关闭调试,并依赖Django发送的电子邮件调试消息。然而,这通常不实用,但它确实有效。

答案 4 :(得分:0)

尝试django_extensions + Werkzeug。