0

我最近一直在努力使用 Jquery Select2 ( Select2 ),试图实现从 ASP MVC ActionResult 获取数据的 ajax 回调。

这是我的 HTML 代码:

<input type="hidden" id="e2" style="width: 500px;">

这是js代码:

<script>
$(document).ready(function(){

    $("#e2").select2({
        minimumInputLength: 1,
        ajax:{
          url: "http://localhost:1800/Test/GetCountries",
            dataType:"jsonp",
            data: function(term, page){
                return {
                    query: term
                };
            },
            results: function(data){
                return {
                    results: data
                };
            }
        }
    });

});

GetCountries 函数非常简单,它只返回与搜索词匹配的国家。这是搜索“联合”一词时的示例:

[{"id":"AE","text":"United Arab Emirates"},{"id":"UK","text":"United Kingdom"},{"id":"US","text":"United States"}]

我尝试将格式从 application/json 更改为 text 来回没有成功。我想我在我的函数返回的 json 上遗漏了一些东西,但是三个小时后我仍然不知道这里可能出了什么问题。

当我在网络选项卡上查看 Chrome 调试器时,它似乎调用了该​​函数并且正在发送数据。但是,当我输入字母时,什么都没有显示,它只会永远显示“正在搜索...”文本。

如果有人遇到过同样的情况,请分享您的想法。提前致谢。

4

2 回答 2

0

自从我要求这个已经有一段时间了。我还没有时间让 Select2 工作,尽管默认 Bootstrap 的 Typeahead 的解决方法可以做到。

所以,如果有人过来,不要费心回答。

于 2013-01-14T01:47:42.553 回答
0

这里的问题是

dataType:"jsonp"

解决方案:

 dataType:"json"

查看更多JSONP 是什么?

于 2013-06-30T19:09:55.027 回答