以下是我的用於處理Ajax/jQuery請求的Django代碼。 'q'參數的Django過濾方法不起作用。這可能是因爲Ajax請求採用JSON格式。有人可以建議我去哪裏錯了嗎?無法在Django後端處理Ajax/jQuery請求
Views.py
def get_names(request):
q = request.GET.get('term', '')
names = Names.objects.filter(names__startswith=q)[:10]
results = []
if names.count > 0:
for name in names:
name_json = {}
name_json['id'] = name.id
name_json['label'] = name.name
name_json['value'] = name.name
results.append(name_json)
data = json.dumps(results)
else:
data = 'fail'
mimetype = 'application/json'
return HttpResponse(data, mimetype)
下面是我的jQuery代碼
$(document).on("pageinit", "#myPage", function() {
$("#autocomplete").on("listviewbeforefilter", function (e, data) {
var $ul = $(this),
$input = $(data.input),
value = $input.val(),
html = "";
$ul.html("");
if (value && value.length > 2) {
$ul.html("<li><div class='ui-loader'><span class='ui-icon ui-icon-loading'></span></div></li>");
$ul.listview("refresh");
$.ajax({
url: "/get_names/",
dataType: "json",
crossDomain: true,
data: {
term: $input.val()
}
})
.then(function (response) {
$.each(response, function (i, val) {
html += "<li>" + val + "</li>";
});
$ul.html(html);
$ul.listview("refresh");
$ul.trigger("updatelayout");
});
}
});});
爲什麼'crossDomain:true,'? –