2016-06-06 9 views
0

Я пытаюсь передать этот простой вход на каждом нажатии клавиши, чтобы обработчик Ajax, а затем к контроллеру:Вопрос по запросу Ajax (Liferay)

<portlet:resourceURL var="resourceURL"> 
</portlet:resourceURL> 

    <form id="busq" method="POST"> 
    <input id="busqueda" name="param1" type="text" onkeypress="buscar()"/> 
    </form> 

Это мой Аякс вызов. Это, кажется, работает нормально: он посылает параметр в запросе POST, и извлекает некоторые данные с сервера:

var busq = document.getElementById("busqueda").value; 
    console.log("Searching for: "+busq); 
    AUI().use('aui-io-request', function(A){ 
     A.io.request('${resourceURL}', { 
       method: 'post', 
       data: { 
        parametro: busq 
       }, 
       on: { 
        success: function() { 
        console.log("RESULT: "+this.get('responseData')); 
        }, 
        error: function(){ 
         alert("Error"); 
        } 
       } 
     }); 

    }); 

Это, как я прочитал его в контроллере. В настоящее время она получает пустую строку:

String datos = ParamUtil.get(req, "param2", StringPool.BLANK); 

Я пробовал все следующее:

  • Использования пространств имен
  • Установки ложное (текущее состояние).
  • Изменение имен переменных.
  • Использование ParamUtil.getString().
  • и т.д ...

Ничего не работало. Я хочу получить входное значение в моем контроллере, поэтому я могу отфильтровать поиск, но он никогда не попадает туда (поэтому я получаю всю информацию запроса без какой-либо фильтрации).

У вас есть мысли, что вы здесь?

+0

Похоже, что имя параметра, которое вы отправляете, является параметром. Вы можете проверить запрос в своем контроллере и посмотреть, какие параметры есть, что может помочь. –

+0

Было бы хорошо, если бы вы предоставили код для всех параметров, которые вы пробовали? –

ответ

1

Вы используете неправильное имя параметра при получении значения: Строка datos = ParamUtil.get (req, "param2", StringPool.BLANK);

Попробуйте использовать этот код в контроллере: String datos = ParamUtil.get (req, "parametro", StringPool.BLANK);

Смежные вопросы