即使正确的 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 结果的主要内容,如果未能解决你的问题,请参考以下文章
JSON/Ajax 格式请求上的 Select2 optgroup 组