2015-10-20 32 views
1

我已经成功地使用jQuery Ajax和GET和POST方法通过Web APIJQuery的自动完成散发出奇怪的字符

不过,现在我有我需要做一个AUTOCOMPLETE

我找一个任务在几个实例中,我陷入了一些疯狂的生成的URL这是国外对我

网址:

http://localhost:11974/GetPersonInfoFromRegister?term=ad&_=1445370940988 

“term”从哪里来?
“1445370940988”从哪里来?

HTML

input type="text" id="txtSearch" /> 

的Jquery:

$(function() { 
    $('#txtSearch').autocomplete({ 
     source: function(request, response) { 
      $.ajax({ 
       url: '/GetPersonInfoFromRegister', 
       type: 'GET', 
       cache: false, 
       data: request, 
       dataType: 'json', 
       success: function(json) { 
        // call autocomplete callback method with results 
        response($.map(json, function(name, val) { 
         return { 
          label: name, 
          value: val 
         } 
        })); 
       }, 
       error: function(XMLHttpRequest, textStatus, errorThrown) { 
        //alert('error - ' + textStatus); 
        console.log('error', textStatus, errorThrown); 
       } 
      }); 
     }, 
     minLength: 2, 
     select: function(event, ui) { 
      alert('you have selected ' + ui.item.label + ' ID: ' + ui.item.value); 
      $('#txtSearch').val(ui.item.label); 
      return false; 
     } 
    }); 
}); 
+0

我相信“一词=广告”是在搜索中查找键和“_ = 1445370940988“是您尝试实现自动完成的输入中发送的实际文本(可能是广告编号)。总之,它是一个模拟网址。 – DinoMyte

+0

广告确实是我输入到文本框中的文本,但1445370940988我根本不明白 –

+0

text =“ad”非常含糊地用作搜索文本。基本上,你会看到某个类别内的项目(如广告) – DinoMyte

回答

1

我没有做很多与自动完成,但在我做自动完成1是与角的应用程序的一部分,但另一个是与jquery注释掉

这是工作正常之前被注释掉。

您为了使其发挥作用而进行的一些更改。从GET到POST

  1. 变化(我记得该网页API不想请求和request.term吐出的人物,也没有路由引擎。
  2. 只是注意到各种变化和它“应该”工作

    $(function() { 
    
    $("#TextBox1").autocomplete({ 
        source: function (request, response) { 
         $.ajax({ 
          url: '/GetPersonInfoFromRegister/'+request.term, 
          data: "{ 'id': '" + request.term + "' }", 
          dataType: "json", 
          type: "POST", 
          //type: "GET", 
          contentType: "application/json; charset=utf-8", 
          dataFilter: function (data) { return data; }, 
          success: function (data) { 
           response($.map(data, function (item) { 
            return { 
             value: item.YOURMODELPROPERTY 
    
            } 
           })); 
          }, 
          error: function (XMLHttpRequest, textStatus, errorThrown) { 
           console.log(textStatus); 
          } 
         }); 
        }, 
        minLength: 2 
    }); 
    

    });

我混在我与你的代码,但它应该是接近

WEB API

[HttpPost] 
[Route("GetPersonInfoFromRegister/{id}")] 
public IEnumerable<MODELOFYOURS> GetPersonStuff(string id) // id matches Route 
{ 
    ..... 
    return _db.MODELOFYOURS.Where(m => m.PROPERTYOFYOURS.Contains(id)).ToList(); 

} 
+0

POST工作,以及数据和匹配的所有item.stuff和web api路由真棒 –

+0

不客气先生 –