2012-05-18 2 views
1

У меня проблема с функцией автозаполнения jquery. Если я укажу источник, который не перенаправляется, мой автозаполнение работает без проблем (это было в моей тестовой среде). Для производства это должно работать в нашем инструменте документооборота.jquery autocomplete source redirects

Страница источника jquery также написана в этом инструменте рабочего процесса и выводит данные. Проблема только в том, что когда я вызываю эту страницу вывода с параметрами GET, она перенаправляет меня на другую страницу, содержащую результаты JSON.

У jquery, похоже, есть проблема с этим, так как у меня нет никаких предложений.

Это JQuery для поля ввода:

$(function() { 
     $("#unameLeiter").autocomplete({ 
      source: function(request, response) { 
       $.ajax({ 
        url: "http://localhost:8082/ivy/pro/designer/ldapCurrent2/137553578A7A2B3F/persons.ivp", 
        dataType: "jsonp", 
        data: { 
         search: request.term 
        }, 
        success: function(data) { 
         response($.map(data.persons, function(item) { 
          return { 
           label: item.cn, 
           value: item.imPersonalNumber 
          } 
         })); 
        } 


    }); 
     }, 
     minLength: 0, 
     select: function(event, ui) { 
      $("<div/>").text(ui.item.label + " " + ui.item.value).prependTo("#output"); 
     } 
    }) 
}) 

HTML, выглядит довольно противно, но это не важная часть, так как есть только поле ввода и вывода дел. Когда я просматриваю сетевые запросы, я вижу, что jquery выполняет правильные обращения к «исходному» URL-адресу, но затем перенаправляется на другой URL (результаты показывают, что я искал).

Итак, как мне обрабатывать источники в jquery, которые перенаправляются на фактический вывод?

Резюмируя

  1. JQuery отправляет данные как этот http://source/persons.ivp?callback=jquery87346&search=John
  2. Workflow инструмент принимает параметры, обрабатывает их и перенаправляет на новый адрес http://source/L84FJ8LA4LS/CMSObject.ivc?taskId=84&processId=LKIA47&pid=KS4U6T84LSZ
  3. Новый URL содержит результаты для параметра John
  4. jQuery не обрабатывает результат из-за перенаправления 302 permanently moved.

У меня нет способа изменить поведение этого инструмента рабочего процесса. Поэтому мне придется решить эту проблему с помощью jQuery.

Обновление: Я заметил, что JSP-файл, который выводит данные JSON, html-кодирует мой вывод, что, кажется, мешает jquery. Кто-нибудь знает, как я могу печатать данные в JSP без html-encoding?

Как это выглядит, когда я просматривать исходный код выхода-страницы: jquery1234({&quot;total&quot;:&quot;2&quot;, &quot;persons&quot;:[{&quot;cn&quot;:&quot;John Smith&quot;, &quot;imPersonalNumber&quot;:&quot;5616&quot;},{&quot;cn&quot;:&quot;Peter Jackson&quot;, &quot;imPersonalNumber&quot;:&quot;7016743&quot;}]})

Как это выглядит нормально:

jquery1234({"total":"2", "persons":[{"cn":"John Smith", "imPersonalNumber":"5616"},{"cn":"Peter Jackson", "imPersonalNumber":"7016743"}]}) 

ответ

1

Как оказалось, проблема была не редирект. Это был тот факт, что инструмент избежал всех данных. После того, как я узнал, как предотвратить его, все работает нормально.