変数を取り、ユーザーを別のページにリダイレクトする単純な投稿をdjangoに実行しようとしています。現在、私のJavaScriptは次のようになっています。
$.ajax({
type: "POST",
url: "{% url unity.survey.views.post %}",
data: { // <-- error here?
'order' : '1',
'csrfmiddlewaretoken': '{{ csrf_token }}'
},
success: function(datas) {
if (datas.redirect) {
window.location.href = data.redirect;
}
}
});
};
django での対応するビューは次のようになります。
def post(request, *args, **kwargs):
if 'order' in request.POST:
order = request.POST['order']
else:
return redirect('unity.survey.views.login')
.... some calculations with order ....
return render_to_response(
'template.html',
some_dictionary,
context_instance=RequestContext(request)
)
何らかの理由で、ビューに何も送信されていないように見えます。Firefox の Web コンソールを見ると、次のように表示されます。
[07:31:12.414] POST http://127.0.0.1/unity/ survey/ [undefined 17ms]
[07:31:12.422] GET http://127.0.0.1/unity/survey/ [HTTP/1.1 302 FOUND 73ms]
[07:31:12.497] GET http://127.0.0.1/unity/survey/login [HTTP/1.1 200 OK 177ms]
何をしてもログインページにリダイレクトされるだけです。.ajax の代わりに .post を使用してみましたが、結果は同じです。なぜこれが当てはまるのでしょうか?同様の機能があり、うまく機能しますが、何らかの理由でこれを機能させることができません。POST データが送信されていないように見えます。