Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema con retorno Ajax

Estas en el tema de Problema con retorno Ajax en el foro de Frameworks JS en Foros del Web. Buenas foreros, tengo un problema con un ajax y un jsp. El caso es que tengo que pedir la hora cada segundo, y lo hago ...
  #1 (permalink)  
Antiguo 13/02/2012, 06:28
Avatar de altex  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 47
Antigüedad: 15 años, 7 meses
Puntos: 4
Pregunta Problema con retorno Ajax

Buenas foreros,

tengo un problema con un ajax y un jsp. El caso es que tengo que pedir la hora cada segundo, y lo hago a través de ajax.

La primera vez que muestro hora lo hago con jsp, y después lo hago con ajax. El caso es que cuando me retorna la hora, me retorna todo un HTML, por lo que se mete una página dentro de otra. Os pongo el código a ver si se os ocurre algo:

Este es el que pide la hora (Aunque parezca que esta al reves, es el view.jsp el que le pide la hora al index.jsp, el que se muestra es el view.jsp):

view.jsp

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function createRequestObject() {
  3.     var req;
  4.     if (window.XMLHttpRequest) {
  5.  
  6.         req = new XMLHttpRequest();
  7.     } else if (window.ActiveXObject) {
  8.         // For IE 5+
  9.         req = new ActiveXObject("Microsoft.XMLHTTP");
  10.     } else {
  11.     }
  12.  
  13.     return req;
  14. }
  15.  
  16. function timeMsg() {
  17.     // var t=setTimeout("alertMsg()",3000);
  18. }
  19.  
  20. function alertMsg() {
  21.     alert("Hello");
  22. }
  23. // Make the XMLHttpRequest Object
  24. var http = createRequestObject();
  25.  
  26. function sendRequest(method, url) {
  27.     if (method == 'get' || method == 'GET') {
  28.         http.open(method, url);
  29.         http.onreadystatechange = handleResponse;
  30.         http.send(null);
  31.     }
  32. }
  33.  
  34. function handleResponse() {
  35.     if (http.readyState == 4 && http.status == 200) {
  36.         var response = http.responseText;
  37.        
  38.         if (response) {
  39.             //<div id="ajax_res//">(.*?)</div>;
  40.             document.getElementById("ajax_res").innerHTML = response;  
  41.         }
  42.     }
  43. }
  44. window.setInterval("sendRequest('GET','index.jsp')", 1000);
  45. </script>
  46.  <%
  47.     String total;
  48.     TimeZone zona = TimeZone.getTimeZone("Europe/Madrid");
  49.     Locale local = new Locale("SPANISH", "SPAIN");
  50.     Calendar calendario = Calendar.getInstance(zona, local);
  51.     int numDia, numAny, hora, minutos, segons;
  52.     String dia, mes;
  53.  
  54.     String diesSet[] = {"","Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"};
  55.     String mesAny[] = {"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre"
  56.             ,"Octubre","Noviembre","Diciembre"};
  57.    
  58.     numDia=calendario.get(Calendar.DAY_OF_MONTH);
  59.     numAny=calendario.get(Calendar.YEAR);
  60.     hora =calendario.get(Calendar.HOUR_OF_DAY);
  61.     minutos = calendario.get(Calendar.MINUTE);
  62.     segons = calendario.get(Calendar.SECOND);
  63.     String hora2=Integer.toString(hora);
  64.     if(hora<10) hora2="0"+hora2;
  65.     String min2=Integer.toString(minutos);
  66.     if(minutos<10) min2="0"+min2;
  67.    
  68.     dia=diesSet[calendario.get(Calendar.DAY_OF_WEEK)];
  69.     mes=mesAny[calendario.get(Calendar.MONTH)];
  70.    
  71.     //Dijous, 26 de Gener de 2012 hora:min
  72.     total=(dia+", "+numDia+ " de " + mes + " de " + numAny + " " + hora2 + ":" + min2 + ":" + segons);
  73. %>
  74. <div id="ajax_res"><%=total%></div>
  75. <a onload="sendRequest('GET','index.jsp')" href="#"></a>

y este el que retorna la hora:

index.jsp

Código Javascript:
Ver original
  1. <div id="ajax_res"><%=total%></div> //Total es lo mismo que en el index


Si alguien me hecha una mano lo agradecería, no soy capaz de sacarlo!!

Saludos

Etiquetas: ajax, jsp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:34.