2012-04-18 4 views
2

Я использую код AJAX, где HTML-страница делает вызов ajax на страницу JSP и получает дату из JSP для представления на HTML-странице. В приведенном ниже коде показан полный ответ в поле предупреждения, и все, что я получаю взамен, - это случайное число, подобное этому: 1334754128581. Функция responseetext не возвращает HTML. Делает код возврата readystate из 4 и состояния == 200. Вот код в HTML:Ajax jsp responsetext

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
</head> 

<script type="text/javascript"> 
function createXMLHttpRequest(){ 
    if(typeof XMLHttpRequest == "undefined") XMLHttpRequest = function() { 
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0") } catch(e) {} 
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0") } catch(e) {} 
try { return new ActiveXObject("Msxml2.XMLHTTP") } catch(e) {} 
try { return new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {} 
throw new Error("This browser does not support XMLHttpRequest.") 
}; 
return new XMLHttpRequest(); 
} 

var AJAX = createXMLHttpRequest(); 

function handler() { 
if(AJAX.readyState == 4 && AJAX.status == 200) { 
    var txt = AJAX.responseText ; 
    alert('Ajax success. Result: ' + txt); 
}else if (AJAX.readyState == 4 && AJAX.status != 200) { 
    alert('Ajax failed'); 
} 
} 

function show(){ 
    AJAX.open("GET", "service.jsp"); 
    AJAX.onreadystatechange = handler; 
    AJAX.send(""); 
}; 
</script> 

<body> 
    <a href="#" onclick="javascript:show();"> Click to get data from server</a> 
</body> 
</html> 

JSP-страница:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4 /loose.dtd"> 
<html> 
<head> 
<title> JSP </title> 
</head> 
<body> 
<%=new java.util.Date()%> 
</body> 
</html> 

Этот код выполняется на Tomcat v7.

ответ

0

Извините, моя ошибка. У меня был собственный сервлет в web.xml, который обрабатывал все jsps. Сервлет пишет текущее время для писателя, откуда я получал случайное число.

0

Я тестировал на Tomcat 6 и отлично работает.

Вы запрашиваете полную веб-страницу с помощью своего вызова Ajax, и вы получаете обратно. Как говорится. Проблема не в вашем Ajax, а в том, что вы возвращаете с сервера. Вы должны возвращать вывод только не веб-странице, которая, как оказалось, имеет выход.

В вашем случае это должно быть только , если вы хотите вернуть текущую дату.

+0

Спасибо. Итак, случайное число является правильным ответом? Это то, что вы видите? Если я хочу попасть в определенное поле в jsp, как бы я это сделал? – sotn

+0

Нет, в соответствии с кодом он должен возвращать целую HTML-страницу. Редактируйте вопрос по вашему запросу. –

+0

Еще одна странная вещь, которую я вижу в том, что при запуске service.jsp сам по себе, я вижу эту разметку в поджигатель: – sotn