2009-08-29 10 views
6

jQueryを使ってAjaxを呼び出すときに、Djangoが提供するデバッグ情報を取得する良い方法はありますか?今すぐ電話をかけると、python runserverウィンドウにhttp/200サーバーエラーが表示されますが、呼び出しはjavascriptで行われるため、すべての情報を含むデバッグページは表示されません。Ajaxコールの使用時にDjangoのデバッグ情報を取得するには?

答えて

3

jQueryのajax呼び出しに返された応答の内容を調べることができます。 Firebugのようなツールを使うと、これを簡単にすることができます。

Djangoはデバッグページを返します。通常のブラウザ要求ではなく、ajax呼び出しに応答しているだけです。

通常のリクエストを処理して、サーバー側のコードが正常に動作していることを確認してから、「ajaxify」することは良いテクニックです。

+0

これはすべて、解析されていないHTML形式です。私はちょうどdivにロードすることができると思います... – victor

+2

実際にFirebugは返されたHTMLをFirefoxの新しいタブとして開くことができるので、正しい形式で見ることができます。 –

+0

ああ、それはやるよ! – victor

1

このスニペットを使用することができます:http://www.djangosnippets.org/snippets/650/、HTMLではなく、firebugで表示するプレーンテキストのトレースバックを取得します。

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

これは、開発およびデバッグ時に本当に役立つことができます。実稼働環境では、障害ハンドラをより適切なものに置き換えることをお勧めします。

関連する問題