Нет ответа сервлета через Ajax - PullRequest
2 голосов
/ 20 января 2011

Я написал простой сервлет для обработки Ajax-запроса. На стороне сервера вызывается doPost, но данные, которые я установил в объекте ответа, не отражаются на клиенте. (На самом деле, я ничего не получаю от клиента, согласно Firebug). Я использую jQuery для обработки Ajax.

Код клиента:

$.post(
   '/mapped/url?param=' + $('#eleId').val(),
      function(data){
        alert(data);
      },
      "xml"
);

На сервере:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("!!!In post!!!!");
    // some calculations go here

    response.setContentType("application/xml");
    response.setHeader("Cache-Control", "no-cache");

    response.getWriter().write("<data><param number=\"\"></param></data>");
            response.setStatus(HttpServletResponse.SC_OK);
}

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 20 января 2011

Вам нужно отладить это поэтапно, поскольку эта проблема может означать что угодно, от неправильной настройки сервлета до ошибки в коде на стороне клиента.

  1. Какой код состояния вы видите в firebug для запроса XHR (AJAX)? (все, кроме 200, помечено красным флагом. проверьте логи сервера)
  2. Ваш оператор system.out выполняется? то есть "!!! В посте !!!!" вход
  3. Создайте простой HTML-файл с формой, которая будет публиковать сообщения в сервлете, и посмотрите, получите ли вы какие-либо результаты.
  4. В зависимости от результатов описанных выше шагов, при необходимости отладить.
0 голосов
/ 20 января 2011

Возможно, вам придется явно закрыть выходной поток -

  PrintWriter out = res.getWriter();

  out.println( "Sample response" );
  out.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...