我正在使用 jQuery 自动完成 http://jqueryui.com/demos/autocomplete/#remote-jsonp ajax 请求不起作用的地方(没有向指定的 url 发送请求)
这是 jQuery 代码:
$("#add-keywords").autocomplete({
source: function( request, response ) {
var q = $("#add-keywords").val();
$.ajax({
url: "/keywords_suggestions/",
dataType: "json",
data: {
query: q
}
});
},
minLength: 2,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.label :
"Nothing selected, input was " + this.value);
}
});
请求 url 应该是这个 http://127.0.0.1:8000/keywords_suggestions/
但它发送到 http://127.0.0.1:8000/information/?query =web
(jquery自动补全功能在这个页面http://127.0.0.1:8000/information/
实现)
UPDATE-1
我检查了浏览器中的/keywords_suggestions/页面,它显示 Django 服务器代码没有返回 HttpResponse。这是问题的根源吗?我无法理解,自动完成本身的请求 url 不正确。那么这段 Django 服务器代码怎么会导致问题呢?
谁能告诉我我犯了什么错误?谢谢!
最佳答案
尝试为传出数据指定一个类型并对其进行一些手动操作:
$("#add-keywords").autocomplete({
source: function(request, response) {
var q = $("#add-keywords").val();
var pString = '{"query":"' + q + '"}';
$.ajax({
url: "/keywords_suggestions/",
dataType: "json",
data: pString,
contentType: "application/json",
success: function(data) {
response(data);
}
});
},
minLength: 2,
select: function(event, ui) {
log(ui.item ? "Selected: " +
ui.item.label : "Nothing selected, input was " +
this.value);
}
});
contentType 将告诉服务器期望什么。
关于javascript - jquery - ajax 请求不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10982230/