2015-04-07 65 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"]