我有以下自动完成功能,它来自我的ajax数据源:
$("#id_q").autocomplete({
source: function (request, response) {
$.ajax({
url: "/search/autocomplete/",
dataType: "jsonp",
data: {
q: request.term
},
success: function (data) {
alert(data);
response(data);
}
});
},
minLength: 3,
select: function (event, ui) {
log(ui.item ?
"Selected: " + ui.item.label :
"Nothing selected, input was " + this.value);
},
open: function () {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function () {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
服务器端我可以看到结果正确返回,如下所示:
{"results": ["BEEF", "BEEFARONI", "BEEFARONI", "BEEF", "BEET"]}
成功方法永远不会触发警报。
我还应该重命名request.term吗?
我做错了什么,我在哪里打印我要回来的数据来弄清楚发生了什么?
答案 0 :(得分:0)
您是否将数据传递给source
方法?
你的url
是否正确?我认为你的错了,尝试编写整个URL或使用REST客户端进行检查。
答案 1 :(得分:0)
感谢@Andrew Whitaker的提示。我删除了整个dataType行,但它确实有效。