對Ajax不熟悉,所以我試圖讓我的頭部纏繞在東西上。我試圖通過將我的Javascript事件處理程序連接到span元素的onclick來進行Ajax調用。我的模板中沒有表單元素。是否有可能在Django中沒有表單元素的情況下進行Ajax調用?從我的理解是,但我似乎無法讓它工作。當我在視圖中查看請求時,沒有HTTP_X_REQUESTED_WITH標頭,因此request.is_ajax()調用始終返回false。在沒有表格的情況下在Django中調用Ajax
這裏是我的模板的相關部分:
<td><span class="header" onclick="sort_user_table('username')"><a href="">Username</a></span></td>
這是我的JavaScript函數:
function sort_user_table(col_name) {
$.ajax({
url: "/listusers/",
data: {sort_order: col_name},
headers: {'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest'},
type: "GET",
dataType : "json",
success: function(json) {
alert('json = ' + json);
},
});
}
這是我的觀點:
def list_users_page(request):
if request.is_ajax():
sort_order = request.GET['sort_order']
users = User.objects.all().order_by(sort_order)
data = serializers.serialize('json', users)
json_users = json.dumps(data)
return HttpResponse(json_users, mimetype='application/json')
else:
users = User.objects.all().order_by('last_name')
variables = RequestContext(request, {
'users': users,
})
return render_to_response('users_page.html', variables)
感謝您的建議。 'request.is_ajax'塊中的'Users'是一個錯字,我的代碼確實是'User.objects.all'。爲了簡潔,我省略了錯誤回調。當我插入並檢查錯誤時,它僅僅是「錯誤」消息,不是很有幫助。我按照你的建議做了,並檢查了請求標題,HTTP_X_REQUESTED_WITH標題不在請求中。 – nucklehedd