使用ajax源的jquery自动完成不会检索结果

时间:2014-09-08 19:15:42

标签: javascript jquery ajax jquery-autocomplete

我有以下自动完成功能,它来自我的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吗?

我做错了什么,我在哪里打印我要回来的数据来弄清楚发生了什么?

2 个答案:

答案 0 :(得分:0)

您是否将数据传递给source方法? 你的url是否正确?我认为你的错了,尝试编写整个URL或使用REST客户端进行检查。

答案 1 :(得分:0)

感谢@Andrew Whitaker的提示。我删除了整个dataType行,但它确实有效。