Ajax를 처음 접했으므로 머리를 감싸려고 노력하고 있습니다. 내 자바 이벤트 핸들러를 span 요소의 onclick에 연결하여 Ajax 호출을 작성하려고합니다. 템플릿에는 양식 요소가 없습니다. Django에서 폼 요소없이 Ajax 호출을 할 수 있습니까? 내가 이해하는 바에 따르면, 나는 그것을 작동시키지 못합니다. 내보기에서 요청을 살펴보면 request.is_ajax() 호출은 항상 false를 반환하므로 HTTP_X_REQUESTED_WITH 헤더가 없습니다. 여기 내 자바 스크립트 기능 Ajax는 Django를 양식없이 호출합니다.
<td><span class="header" onclick="sort_user_table('username')"><a href="">Username</a></span></td>
의
:여기에 내 템플릿의 관련 부분의
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