この単純なコードをうまく動作させるために努力していますが、まだできません。他の複数のリンクを通過しました。何が間違っているのか分かりません。私はちょうどajax post
をdjangoビューに呼び出さなければならないjavacript関数submitData()
を持っています。 djangoビューは、基本的には、要求がpost
かどうかをチェックする必要があります。そうであれば、別のページにリダイレクトする必要があります。djangoビューのポストajax呼び出しの後に別のページにリダイレクト
私のjavascriptの機能submitData()
は以下のとおりであり、csrf
トークンをpost
リクエストとともに送信するコード部分を追加しました。私views.py
で
function submitData()
{
$.post('/loggedin/',{"fname":"name1","lname":"name2"},function(data){
alert("Back from views.py");
});
}
$(function() {
$.ajaxSetup({
headers: { "X-CSRFToken": getCookie("csrftoken") }
});
});
function getCookie(c_name)
{
if (document.cookie.length > 0)
{
c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1)
{
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) c_end = document.cookie.length;
return unescape(document.cookie.substring(c_start,c_end));
}
}
return "";
}
、私は次のコード、
def loggedin(request):
if request.method == "POST":
fname = request.POST.get('fname')
print fname #The code comes here, prints the fname
args = {}
args.update(csrf(request))
return render_to_response('loggedout.html',args,context_instance=RequestContext(request)) #This does not redirect to a different page
print "outside in loggedin"
args = {}
args.update(csrf(request))
return render_to_response('loggedin.html',args, RequestContext(request))
post
呼び出しが行われた場合、FNAMEが印刷されますが、機能render_to_response()
によって起こると仮定されるリダイレクトは起きていないを持っています。代わりにpost
コールが返され、post
コールの「statements.pyから戻る」という警告ステートメントが警告されます。私は何が欠けているのか分からない。
'render_to_response'のコードを表示してください – Mairaj
' views.py'の 'loggedin()'関数は 'render_to_response'()を持っています。私はちょうどdjangoのdjango.shortcutsライブラリによって与えられた 'render_to_response()'関数を使用しています。コードは? – nidHi
ここにはリダイレクトは一切ありません。 –