$.getJSONのcallbackが呼ばれない
勘違いしてたのでメモ
以下のようにgetJSONのレスポンスを受けたら、status見てリダイレクトさせようと考えたんだけど、
そもそも302が返されたらcallbackが呼ばれなかった。
$(function(){ $.getJSON('/path/to/api', function(data, textStatus, jqXHR){ if (jqXHR.status === 302) { location.href = data['redirect_to']; } }; });
django風に例を書くと、サーバー側で以下のようになってるときはcallbackは呼ばれない
404の場合も当然呼ばれない
# リダイレクト return HttpResponseRedirect('/path/to/redirect') # json返しつつ、statusはredirect return HttpResponse(json.dumps({key: value}), mimetype='application/json', status=302)
あとjsonでなく、htmlが返された場合も呼ばれない。