jQuery 自动完成不适用于后端生成的 JSON

jQuery Autocomplete does not work with back-end generated JSON

我正在使用 jQuery 自动完成功能,如果我使用 jQuery 的默认 url 代码可以工作,但是当我使用后端生成的 JSON并在我的输入元素中键入一些内容,我确信该函数调用后端并且后端生成 JSON 但自动完成不显示返回的值 JSON。

$(function() {
        $("#name").autocomplete(
                {
                    source : function(request, response) {
                        $.ajax({
                            url : "http://localhost:2051/myproject/names",
                            dataType : "jsonp",
                            data : {
                                q : request.term
                            },
                            success : function(data) {
                                response(data);
                            }
                        });
                    },
                    minLength : 2,

                });
    });

地址后端的JSON

"http://localhost:2051/myproject/names"

returns如下

["Podgorica, CG, Yugoslavia"]

当我使用自动完成的默认版本附带的 url 键入 pod 时,它会显示并成功填充建议框。

 ["Podgorica, CG, Yugoslavia"]

不知道为什么不显示后台返回的JSON。另一个问题是如何获得项目的映射,而不是将项目的值传递给后端?

此代码有效。

   $("#tags").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "http://localhost:43580/bmac/home/index",
                    dataType: "json",
                    data: { q: request.term },
                    success: function (data) {
                        response(data);
                    }
                });
            }
        });

和后端

[AllowAnonymous]
    public virtual ActionResult Index()
    {
        return Json(new[] { "Podgorica CG Yugoslavia" }, JsonRequestBehavior.AllowGet);
    }

return

["Podgorica CG Yugoslavia"]