Javascript jquery自动完成-不过滤

Javascript jquery自动完成-不过滤,javascript,java,jquery,jquery-ui,Javascript,Java,Jquery,Jquery Ui,我正在尝试使用带有ajax调用的JQuery autocomplete函数,该函数将返回字符串列表..当我尝试键入时,它显示所有字符串列表,而不是根据输入进行筛选..不确定哪里出错..下面是我的autocomplete函数 $("#domainNameId").autocomplete({ source : function(request, response) { console.log("in ajax "); $.ajax({

我正在尝试使用带有ajax调用的JQuery autocomplete函数,该函数将返回字符串列表..当我尝试键入时,它显示所有字符串列表,而不是根据输入进行筛选..不确定哪里出错..下面是我的autocomplete函数

$("#domainNameId").autocomplete({
        source : function(request, response) {
            console.log("in ajax ");
            $.ajax({
                url : "getAllDomains",
                type : "GET",
                contentType : "application/json",
                data : {
                    env : $("#environment").val()
                },
                dataType : "json",
                success : function(data) {
                     response(data); // list of strings..
                },
                error : function(x, t, m) {
                    console.trace();
                    if (!(console == 'undefined')) {
                        console.log("ERROR: " + x + t + m);
                    }
                    console.log(" At the end");
                }
            });

        },
    });

感谢您的帮助。

success
回调中,您需要使用
请求自己过滤
数据


这里有关于jQuery自动完成的更多信息:。

您的后端似乎总是返回整个数据,而不进行任何过滤(服务名称本身是
getAllDomains
)。在这种情况下,不需要使用源选项的函数形式进行ajax调用

您所做的是在用户输入时向服务器发送多个AJAX请求。如果后端总是返回相同的数据,那么向其发送多个请求就没有意义了。您可以简单地获取一次数据,然后以响应作为源初始化自动完成,然后小部件将作为用户类型进行筛选

文件说:

响应回调,它需要一个参数:向用户建议的数据。应根据提供的术语筛选此数据

因此,如果您的服务器不进行过滤,就不要使用函数表单发出AJAX请求

做一些类似于:

$(函数(){
//提出一次性请求
$.ajax({
url:“getAllDomains”,
键入:“获取”,
contentType:“应用程序/json”,
数据类型:“json”,
成功:功能(数据){
//使用响应数据初始化小部件,并让它进行过滤
$(“#域名ID”).autocomplete({
资料来源:数据
});
},
错误:函数(x,t,m){
console.trace();
如果(!(控制台==‘未定义’){
控制台日志(“错误:+x+t+m);
}
console.log(“在末尾”);
}
});
});

这是个坏主意。。。过滤是小部件本身内置的一项功能。如果服务器不进行过滤,那么进行多个ajax调用是没有意义的。是的…我正在从服务器返回所有域..按照您所说的进行了更改,,它工作正常。感谢T J.。如果数据是json数组,比如
[{“name”:“SIK1B”},{“name”:“Nep2”},{“name”:“Mtmr6”},{“name”:“Pik3ca”}]
我无法获取要填充的数据。如果我反向调用函数(在ajax之前自动完成),我会遇到OP的问题,但至少会填充数据。我将用
响应($.map(数据,函数(项){return{value:item.name,label:item.name};})填充数据
Ok不确定4年前是否需要,或者autocomplete是否推断出数据类型,但现在autocomplete将要求您添加
dataType:'json'