Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/09/2009, 02:07
JuaNiNNaio
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 11 meses
Puntos: 2
Problemilla prototype Ajax

Hola, estoy generando una aplicacioncilla web y tengo un pequeño problema, hago la peticion Ajax que es la siguiente:

Código javascript:
Ver original
  1. new Ajax.Request(
  2.                     "datos.jsp",
  3.  
  4.                     {method: 'post',
  5.  
  6.                     parameters: {anios: aniosSelect, meses: mesesSelect},
  7.  
  8.                     onRequest: function()
  9.                     {
  10.                             //alert('Iniciando Request');
  11.                     },
  12.  
  13.                     onComplete: function()
  14.                     {
  15.                             //alert('Request terminado');
  16.                     },
  17.  
  18.                     onSuccess: function(response)
  19.                     {
  20.                         var datosGrid = response.getHeader("grid").evalJSON(true);
  21.                         for(j = 0; j < tablas.length; j++){
  22.                             actualizarTabla(tablas[j], datosGrid);
  23.                         }
  24.                     },
  25.  
  26.                     onFailure: function()
  27.                     {
  28.                             //alert('Request fallido!');
  29.  
  30.                     }
  31.             });

Como observais, traigo un objeto JSON desde un JSP, hasta ahi bien, en el datos.jsp trabajo los datos y en un determinado momento convierto el array resultante a JSON y lo meto en el response:

Código jsp:
Ver original
  1. //Respuesta
  2.     Gson gson = new Gson();
  3.     String grid = gson.toJson(tablaGrid);
  4.     String grafDatosSuma = gson.toJson(tablaGrafDatosSuma);
  5.     String grafValoresSuma = gson.toJson(tablaGrafValoresSuma);
  6.     String grafDatosMedia = gson.toJson(tablaGrafDatosMedia);
  7.     String grafValoresMedia = gson.toJson(tablaGrafValoresMedia);
  8.     String pivotDatos = gson.toJson(datosS);
  9.  
  10.     response.resetBuffer();
  11.     response.addHeader("grid", grid);
  12.     response.addHeader("grafDatosSuma", grafDatosSuma);
  13.     response.addHeader("grafValoresSuma", grafValoresSuma);
  14.     response.addHeader("grafDatosMedia", grafDatosMedia);
  15.     response.addHeader("grafValoresMedia", grafValoresMedia);
  16.     response.addHeader("pivotDatos", pivotDatos);
  17.     response.setContentType("application/json");
  18.     response.setStatus(response.SC_OK);
  19.    
  20.     if (response.isCommitted() == false){
  21.         response.flushBuffer();
  22.     }

Como podeis ver uso GSON, bien a parte del datosGrid, en el response meto otras cosas que necesito, ya que hago 4 llamadas AJAX por el momento, mas tarde intentare unificarlas. El objeto array me lo convierte perfectamente a JSON sin problema, esta comprobado con un println en el log del server, pero luego en el onSucces de la peticion AJAX me devuelve un null, que es lo raro.

Y lo mas raro, es que esto no pasa siempre, sospecho que es por tamaño, ¿Hay algun tamaño maximo para el response? ¿O un numero maximo de headers?

A ver que me podeis decir...

Gracias de antemano!

Última edición por JuaNiNNaio; 18/09/2009 a las 03:34