【发布时间】:2014-07-19 03:28:27
【问题描述】:
Ajax 的新手,所以我试图让我的头脑围绕一些事情。我试图通过将我的 Javascript 事件处理程序连接到 span 元素的 onclick 来进行 Ajax 调用。我的模板中没有表单元素。是否可以在 Django 中不使用表单元素进行 Ajax 调用?据我了解,但我似乎无法让它发挥作用。当我查看我认为的请求时,没有 HTTP_X_REQUESTED_WITH 标头,因此 request.is_ajax() 调用总是返回 false。
这是我模板的相关部分:
<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)
【问题讨论】:
标签: javascript jquery ajax django