繁体   English   中英

jQuery自动完成远程JSON数据源不返回数据

[英]jQuery autocomplete remote JSON datasource not returning data

我一直在这方面工作,并搜索了所有其他的例子,似乎仍然无法弄明白,试图使用jquery ui autocomplete,第一次尝试把这一切都放在一起。 这是我的JS:

$(document).ready(function () {
$("#search-title").autocomplete({
    source: function ( request, response ) {
        $.ajax({
            url: "/include/autocomplete",
            dataType: "json",
            data: {
                        term: request.term      
                    },
            success: function (data) {
                response( $.map( data.stuff, function ( item ) {
                    return {
                        label: item.name,
                        value: item.name
                    };
                }));
            }
        });
    },
    minLength: 2,
    focus: function (event, ui) {
        $(event.target).val(ui.item.label);
        return false;
    },
    select: function (event, ui) {
        $(event.target).val(ui.item.label);
        window.location = ui.item.value;
        return false;
    }
});
});

检查Firebug中的响应,我想我在这里得到了格式正确的JSON:

{"stuff":[ {"label" : "Dragon", "value" : "http://site.com/animal/firebreathers"}] }

但由于某种原因,它并没有挂钩。 在我点击minLength后,一个小的空盒子将在搜索区域下方打开,但没有任何东西在那里。

更新:当我添加“警报(项目);” 在响应调用中,我得到一个窗口,上面写着“site.com上的页面说:object Object” - 这可能是问题吗?

我终于明白了,感谢我提出的暗示评论。

在我从Jquery UI站点复制的返回中,我有:

label: item.name,
value: item.name

将其更改为:

label: item.label,
value: item.value

解决了我与jQuery的斗争。 我不知道这是不是很好的做法,但它终于有效了!

尝试在数据类型中使用jsonp而不是json。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM