我一直在試圖讓這個簡單的代碼工作正常,但仍然無法。已經通過多個其他鏈接。我無法弄清楚我做錯了什麼。我有一個JavaScript函數submitData()
,它只需要調用一個django視圖就可以調用ajax post
。 django視圖基本上只需檢查請求是否爲post
,如果是,則必須重定向到另一個頁面。重定向到不同的頁面後發送ajax調用django視圖
我的javascript函數submitData()
如下所示,並且還添加了代碼的部分,該代碼負責發送csrf
令牌以及post
請求。
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 "";
}
在我views.py
,我有以下的代碼,
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
調用「Back from views.py」中的警報語句。我不確定我錯過了什麼。
請顯示'render_to_response'的代碼 – Mairaj
'views.py'中的'loggedin()'函數具有'render_to_response'()。我只是使用由django的django.shortcuts庫提供的'render_to_response()'函數。代碼如? – nidHi
這裏根本沒有重定向。 –