2
私はDjangoでWebアプリケーションを開発しました。特定の入力テキストに基づいて画像を更新するために、AJAX呼び出し(jQueryの$.ajax
)を呼び出します。次のコードは、目的のために使用されます。AJAX呼び出し中のジャンゴ例外
$('img#diagram').attr('src', '/images/ajax/ajax_loader.gif');
$.ajax({
type: 'POST',
url: '/draw/',
data: { 'diagram': $('#diagram-text').val() },
cache: false,
success: function(mesg, txtStatus, XmlHttpRequest) {
result = $.parseJSON(mesg);
if (result['error']) {
alert('An error was encountered: ' + result['error']);
}
else {
$('img#diagram').attr('src', result['diagram_url']);
}
},
error: function(XmlHttpRequet, txtStatus, errorThrown) {
alert('Failed to draw the diagram!\n' + errorThrown);
},
dataType: 'html'
});
これは、入力が変更され、「ドロー」ボタンがクリックされた後、すなわち画像を更新する、適切に動作します。
問題があります。何も入力せずに「描画」ボタンをクリックすると、AJAXローダー画像がそのまま残ります。
実際には、ページを
- 入力いくつかのテキストと「引く」ボタンをクリックしてください」:私は、次のいずれかを行う場合は今、何も起こりませんリロードされます。
私は今Djangoの開発サーバを停止した場合、私は次のエラーを取得する:
Exception happened during processing of request from ('127.0.0.1', 44166) Unhandled exception in thread started by <function inner_run at 0x9f6d5dc> Error in sys.excepthook: Traceback (most recent call last): File "/usr/lib/python2.6/dist-packages/apport_python_hook.py", line 48, in apport_excepthook if not enabled(): TypeError: 'NoneType' object is not callable Original exception was: Traceback (most recent call last): File "/usr/local/lib/python2.6/dist-packages/django/core/management/commands/runserver.py", line 60, in inner_run run(addr, int(port), handler) File "/usr/local/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 721, in run httpd.serve_forever() File "/usr/lib/python2.6/SocketServer.py", line 226, in serve_forever self._handle_request_noblock() File "/usr/lib/python2.6/SocketServer.py", line 283, in _handle_request_noblock self.handle_error(request, client_address) File "/usr/lib/python2.6/SocketServer.py", line 335, in handle_error import traceback ImportError: No module named traceback
誰もが何かを提案することはできますか?もちろん、空の文字列を防ぐための検証を行うことができます。しかし、なぜこのが実際に起こるのですか?AJAXは非同期ですか?