2012-03-12 3 views
0

У меня есть сервлет, который отправляет данные в виде xml-страницы. Я сделал это в Eclipse IDE для Java EE и разместил его на сервере Tomcat. Сервлет размещен на http://localhost:8080/Checkers/CheckersServlet. Я могу открыть этот url в firefox, и он загружает xml-файл. Как я могу вызвать сервлет из кода ajax?Как позвонить в самосерверный сервлет из ajax

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

Нужно ли создавать один из этих файлов web.xml? Или, что обрабатывается Eclipse, когда я нажимаю «новый Servlet»

var req = new XMLHttpRequest(); 
    req.onreadystatechange = function() 
    { 
     if(req.readyState == 4) 
     { 
      displayResult(req); 

     } 
    } 
    var url = "http://localhost:8080/Checkers/CheckersServlet"; 
    req.open("GET",url,true); 
    req.send(null); 

ответ

1

Если ваш сервлет доступен через веб-браузер или curl, проблема на стороне клиента.

Где вы размещаете JavaScript, т. Е. Какой URL-адрес страницы, на которой выполняется этот код JavaScript? Если это не localhost:8080, вы, к сожалению, испытываете . Чтобы проверить, пожалуйста, добавьте фрагмент кода, описанный в Can I disable SOP (Same Origin Policy) on any browser for development?, - он должен работать после принятия изменений в Firefox.

Самое простое правильное решение - разместить файл js где-нибудь в Eclipse и развернуть его Tomcat так, чтобы он был доступен под localhost:8080/Checkers/some-file.js (тот же домен).

+0

Я не размещаю javascript, это просто определено в моем коде ajax. Я буду искать учебник по размещению кода javascipt. Вот более подробный пост, который я сделал ранее, прежде чем я понял, в чем заключается моя проблема: http://stackoverflow.com/questions/9656156/getelementsbytagname-returning-an-empty-list-when-used-on-responcetext-responc –

+0

Я не знаю, как разместить файл javascript на моем сервере. Я добавил его в проект шашек, но когда я нажимаю run на имени проекта шашек, а не только на сервлете, он спрашивает, хочу ли я работать на сервере или как Java-приложение или Java-приложение. Если я выберу запуск на сервере, он не работает, если я попытаюсь ссылаться на него, сценарий никогда не загружается и код прерывается. –

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