2015-04-07 122 views
1

我正在使用jQuery自动完成如下,如果我使用jQuery的默认网址代码工作,但是当我使用我的后端生成JSON并在我的输入元素,我确信该函数调用后端,后端生成JSON,但自动完成不显示返回的JSON的值。jQuery自动完成不适用于后端生成的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" 

回报是如下

["Podgorica, CG, Yugoslavia"] 

当我用自带的自动完成的默认版本的url型吊舱,它显示和建议框成功填充。

["Podgorica, CG, Yugoslavia"] 

我不知道为什么它不显示返回的JSON后端。另一个问题是如何获得项目的地图,而不是将项目的密钥传递给后端的项目的价值?

+0

在网络控制台中的任何错误? –

+0

@IrvinDominin没什么,我相信它会将请求发送到后端。 –

回答

1

此代码工作找到。

$("#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); 
    } 

回报

["Podgorica CG Yugoslavia"]