即使正确的 JSON 格式,Select2 也不显示 AJAX 结果

Posted

技术标签:

【中文标题】即使正确的 JSON 格式,Select2 也不显示 AJAX 结果【英文标题】:Select2 doesnt show the AJAX results even though proper JSON format 【发布时间】:2014-07-26 13:27:30 【问题描述】:

这是我的代码:

$('.selecter_test').select2(
            
                placeholder: 'Enter a username...',
                minimumInputLength: 0,
                allowClear: true,
                ajax: 
                    quietMillis: 200,
                    url: "/ajax/test",
                    dataType: 'jsonp',
                    data: function (term, page) 
                        return 
                            q: term
                        ;
                    ,
                    results: function (data, page) 

                        return  results: data.Results;
                    

                
            );

在后端,我加载一个带有 id 和 name 的数组,并用 json_encode 函数返回它。我的 AJAX 调用响应如下所示(在 Chrome 中的 Network/Response 标签下查看):

["id":4017,"text":"10anabanana10","id":4813,"text":"adria14na.bbb@gmail.com"... ]

但是,我的 Select2 只是一直显示“正在搜索...”文本并且什么也不显示。我听说我不需要使用 formatResult 和 formatSelectin 函数,因为我使用的是常规格式。

【问题讨论】:

dataType: 'jsonp'?那是怎么回事? 这是他们建议在文档页面上使用的格式:ivaynberg.github.io/select2/#ajax “远程”在该上下文中的意思是“在您自己以外的域上”。这似乎不是这里的情况。 不管怎样,看来只需要将结果回调改成return results: data 即可。我在这里看不到任何 Results 属性。 你说得对,我刚刚做了,但我仍然有问题,它一直显示“搜索...”,但没有任何反应,尽管我认为响应格式正确... 【参考方案1】:

我通过将数据类型参数更改为 json 而不是 jsonp 来修复它。在 *** 的其他地方找到了答案。乔恩的观点很好。

【讨论】:

以上是关于即使正确的 JSON 格式,Select2 也不显示 AJAX 结果的主要内容,如果未能解决你的问题,请参考以下文章

Select2 自定义搜索

select2 optgroup ajax json格式

JSON/Ajax 格式请求上的 Select2 optgroup 组

使用json格式化Select2下拉结果

即使安装了注释,Spring Boot Xml 查看也不起作用

select2:使用ajax获取json时“文本未定义”