2009-08-29 38 views
6

有沒有一種很好的方式來獲取Django在使用jQuery進行Ajax調用時提供的調試信息?現在,當我撥打電話時,我只是在python runserver窗口中看到一個http/200服務器錯誤,但由於調用是通過javascript完成的,所以我沒有得到包含所有信息的調試頁面。使用Ajax調用時獲取Django調試信息?

回答

3

您可以檢查返回給您的jQuery ajax調用的響應內容。使用像Firebug這樣的工具可以使這非常簡單。

Django仍然會返回調試頁面,它只是響應ajax調用而不是常規的瀏覽器請求。

通常這是一種很好的技術,可以讓你的東西在常規請求中工作,然後只有在確定服務器端代碼正在工作後才「ajaxify」它們。

+0

令人討厭的是它全部以未分離的HTML格式。我想我可以將它加載到一個div中。 – victor 2009-08-29 17:10:21

+2

實際上,Firebug可以打開返回的HTML作爲Firefox中的新選項卡,以便您可以以正確的格式查看它。 – 2009-08-29 18:21:20

+0

啊哈,那就做吧! – victor 2009-08-29 20:45:33

0

可能最簡單的方法是關閉調試,並依靠Django發送的電子郵件調試消息。但是,這並不經常實用,但它起作用。

0

嘗試django_extensions + Werkzeug。

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

這可能是開發和調試過程中真正有用的,因爲它可以讓你檢查實時服務器狀態。您可能希望將故障處理程序替換爲生產環境中更適合的東西。