私はhtmlコードを持っています:
<button>asd</button>
<script type = "text/javascript">
$('button').click(
function() {
$.getJSON('/schedule/test/', function(json) {
alert('json: ' + json + ' ...');
});
}
);
</script>
および対応するビュー:
def test(request):
if request.method == 'GET':
json = simplejson.dumps('hello world!')
return HttpResponse(json, mimetype = 'application/json')
ビューが実行され(print
を使用してテスト)、json
変数が初期化されますが、アラートは表示されません。私は何を間違えましたか?私はすでにこれに関するいくつかのドキュメントを見ました( http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback など)が見つかりませんでした答え。
編集:問題は、HttpResponse
がインポートされなかったことです...残念ながらDjangoはエラーを出しませんでした。他のすべては正しかったです。よろしくお願いします。
クリス
Jsonが適切に形成されていない可能性があります。 jsonを生成しているはずのコードがエラーを生成しているときに、これが発生することがあります。 2つのオプション:
ファイアバグを使用してJSON応答を表示する
次のようなjQuery.ajaxSetupオプションを使用して、jqueryコードでエラー処理を設定します。
$.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) {
alert(textStatus);
alert(errorThrown);
alert(XMLHttpRequest.responseText);
}});
応答に問題がある場合はすぐにわかるので、デバッグにエラー処理を使用することは素晴らしいことです。 jQuery.ajaxのjQueryドキュメント をチェックしてください。これには、jQuery.ajaxSetupで使用可能なすべてのオプションがあります。
編集:3番目のオプションは、JSONを生成する必要があるURLを開き、出力を JSON Lint で実行して検証することです。
JSONが有効であると確信していますか?応答を直接確認するか、Firebugを使用してください
私はしばらく前にこれに遭遇し、jQueryのAjaxのラッパーを書き直しました。これにより、通常のgetJSONとgetごとの追加のエラーコールバックを渡すことができます。
http://www.nurelm.com/themanual/2010/08/09/self-indulgent-code-jquery-getjson-with-error-handling/
URLパターンの末尾の$が欠落していると思います。