Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Servlet и AJAX, Возвращает null 
V
    Опции темы
StandartenFuhrer
Дата 1.11.2008, 02:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



Запарился я уже думать...чувствую мелочь какая-то не немогу понять в чем трабл...
Собста...
Код

if(request.getParameter("qInd")!=null)
{
    qInd=Integer.parseInt(request.getParameter("qInd"));
    qInd++;
    response.setContentType("text/xml");
    response.setHeader("Cache-Control", "no-cache");
    out.write("<quest>"+ .... +"</quest>");
   }


Код

var xmlHttp;
function createXmlHttpRequest()
{
       if(window.ActiveXObject)
       {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }

    else if(window.XMLHttpRequest)
    {
        xmlHttp=new XMLHttpRequest();
     }

}
function handleStateChange()
{
    if(xmlHttp.readyState==4)
    {
        if(xmlHttp.status==200)
            {
                 var messageObj=xmlHttp.responseXML.getElementsByTagName("quest")[0];
                 var message=messageObj.childNodes[0].nodeValue;
               
                alert (message);
            }
        else
        {
           alert("Error loading pagen"+ xmlHttp.status +
":"+xmlHttp.statusText);
        }
    }
}
function startRequest(qInd)
{
  createXmlHttpRequest();
  getParam();
  var u1=qInd;
  var u2=qVar;
  xmlHttp.open("POST","http://localhost:8080/HTest/testpage?qInd="+u1+"&qVar="+u2,true);
  xmlHttp.setRequestHeader("content-type","application/x-www-form-urlencoded");
  xmlHttp.onreadystatechange=handleStateChange;
  xmlHttp.send(null);
  qVar=-1;

  
}

итого... сервер обрабатывает запрос...но при проверке выбрасывает null

Это сообщение отредактировал(а) StandartenFuhrer - 1.11.2008, 02:44
PM MAIL   Вверх
Keyo
Дата 1.11.2008, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



При какой проверке? Вы пользуетесь плагином для FF называется firebug? Попробуйте, очень удобно
PM MAIL   Вверх
StandartenFuhrer
Дата 1.11.2008, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



Щас попробую... 
Проверка...хм..сложно это назвать проверкой...просто алерт на ответ сервлета...
PM MAIL   Вверх
Keyo
Дата 1.11.2008, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



StandartenFuhrer, firebug, вкладка Net, можно увидеть все транзакции
PM MAIL   Вверх
StandartenFuhrer
Дата 1.11.2008, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



Спасибо...камрады...поигрался...
Получаеть что у меня в responseText находить весь файл *.js  smile 
А сервлет не передает xml попрежнему...
PM MAIL   Вверх
Keyo
Дата 1.11.2008, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Может попробуешь какую-нибудь библиотеку? prototype, motools, jQuery?
PM MAIL   Вверх
StandartenFuhrer
Дата 3.11.2008, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



суть в том...что я прикреплять *.js скрипт и он забивал все команды
Код

 response.setContentType("text/xml");


PM MAIL   Вверх
fronya
  Дата 8.11.2008, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.11.2008

Репутация: нет
Всего: нет



Дело в том, что вы через Ajax не правильно отправляете запрос методом "POST" НЕЛЬЗЯ В СТРОКЕ URL ПЕРЕДАВАТЬ ПАРАМЕТРЫ методом POST параметры передаются внутри http пакета, а вот если б ты использовал метод метод GET то это может быть и сработало, в итоге сервер переправляет данный запрос как "GET" сервлету к методу doGet(res,req) или вообще его не обрабатывает. 


Написал по своему, вот код может поймёшь что у тя была за проблема:
Код

<script language="javascript" type="text/javascript">
    var request = false;
    
    try {
        request = new XMLHttpRequest();
    } catch (trymicrosoft) {
        try {
            request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (othermicrosoft) {
            try {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (failed) {
                request = false;
            }
        }
    }
    if (!request)
        alert("Error initializing XMLHttpRequest!");
        
  
    function getChoisenPath() {
        var u1="par1";
var u2="par2";
        var url = ""http://127.0.0.1:8080/HTest/testpage";
        var msg = "qInd="+u1+"&qVar="+u2;
        request.open("POST", url, true);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        
        request.onreadystatechange = callback;
        
        request.send(msg); 
    }
    function callback() { 
        if (request.readyState==4) {
            if (request.status==200) {
          
    
                 alert(request.responseText);
                 
                 
                }
             else
                alert("WARNING  status is " + request.status);
        }
   } 

    </script>  


И возможно была у тебя ошибка в Servlete до конца не вдовался там в подробности...

Код Java (часть сервлета):
Код



protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
String qInd= request.getParameter("qInd");
    String qVar= request.getParameter("qVar");
String msg ="<qInd>" + nick + "</qInd>" + "<qVar>" + qVar+ "</qVar>";
    response.setContentType("text/xml;charset=UTF-8");
    response.setHeader("Cache-Control", "no-cache");
    response.getWriter().write(msg);

}



У меня работает. Желаю удачи!!!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0496 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.