2015-09-27 2 views
1

Я надеялся сделать this example on jquery autocoplete работа с помощью простой пользовательской службы, которую я составил, но она вообще не работает.jquery autocomplete issue server side

сниппет:

$("#city").autocomplete({ 
     source: function(request, response) { 
     $.ajax({ 
      url: "http://localhost:8085/TestJsonArrayAJAX/MyServlet", 
      dataType: "jsonp", 
      data: { 
      q: request.term 
      }, 
      success: function(data) { 

      alert("ciao"); 
      response(data); 
      } 
     }); 
     }, 
     minLength: 3, 
     select: function(event, ui) { 
     log(ui.item ? 
      "Selected: " + ui.item.label : 
      "Nothing selected, input was " + this.value); 
     }, 
     open: function() { 
     $(this).removeClass("ui-corner-all").addClass("ui-corner-top"); 
     }, 
     close: function() { 
     $(this).removeClass("ui-corner-top").addClass("ui-corner-all"); 
     } 
    }); 

Я заметил, что на выходе из оригинального сервиса что-то подобное:

jQuery1113013915240531787276_1443349161768(["Milaca, MN, United States","Milam, TX, United States"); 

тем временем мой выход услуги что-то вроде:

["Roma","Milano","Napoli","Palermo","Torino","Firenze","Pisa"] 

потому что Я, однако, что достаточно json-массива и, по-видимому, нет.
Почему это не работает, почему простого массива json недостаточно?
Не могли бы вы помочь?

EDIT:

реализует свою службу, как это:

JSONArray jarr = new JSONArray(); 
     jarr.put("Roma"); 
     jarr.put("Milano"); 
     jarr.put("Napoli"); 
     jarr.put("Palermo"); 
     jarr.put("Torino"); 
     jarr.put("Firenze"); 
     jarr.put("Pisa"); 

String cb = request.getParameter("callback"); 
response.getOutputStream().print(cb+"("+jarr.toString()+");"); 

это работает, но я до сих пор не понимаю, почему ??

+0

какой? непонятно, что я спрашиваю? вы, должно быть, шутите ... – GionJh

ответ

0

Сначала в вашем коде, вам не нужно вызвать функцию входа, как вы не определили в текущем snipet

второе изменение dataType: "jsonp", к dataType: "json",

вы предоставляете вход в качестве источника JSON не JSONP есть разница в них

+0

Я уже пробовал, нет разницы ... список автозаполнения отображается только в том случае, если я получаю мой сервис как jQuery1113013915240531787276_1443349161768 (["Milaca, MN, United States", "Milam, TX , Соединенные Штаты"); – GionJh

+0

подождать ... вот и все ... я так напуган ... это три часа, я пытаюсь решить это ... спасибо – GionJh

+0

@GionJh ваша проблема решена ?? – ddw147