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はそれについてエラーを返しませんでした。他はすべて正しかったです。よろしく
クリス
ベストアンサー1
json が適切に形成されていない可能性があります。json を生成するはずのコードがエラーを生成しているときに、この問題が発生することがあります。2 つのオプションがあります。
Firebugを使用して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 リントそれを検証するため。