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

respuesta json fallida por ajax

Estas en el tema de respuesta json fallida por ajax en el foro de Frameworks JS en Foros del Web. Si yo preparo una respuesta json, pero por alguna razón hay un error en php o mysql, no obtengo respuesta en mi llamada ajax. Por ...
  #1 (permalink)  
Antiguo 19/11/2010, 16:29
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
respuesta json fallida por ajax

Si yo preparo una respuesta json, pero por alguna razón hay un error en php o mysql, no obtengo respuesta en mi llamada ajax. Por que?

No se si esto sea tema para php o para frameworks javascript. Estoy usando el plugin ajaxForm de jquery.
  #2 (permalink)  
Antiguo 19/11/2010, 16:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: respuesta json fallida por ajax

precisamente los errores del script evitan que se forme bien la respuesta de la petición...

¿porque?

por eso, solo usa el sentido común... si ocurre un error fatal simplemente corrompe el formato JSON, ¿se te ha ocurrido usar firebug para comprobarlo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/11/2010, 16:35
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: respuesta json fallida por ajax

Si, pero la consola del firebug no me muestra la transaccion. Lo cual me extraña. Por eso no me puedo fiar de la respuesta json. Tendría que resolverlo con los autores del ajaxForm, supongo.
  #4 (permalink)  
Antiguo 19/11/2010, 16:37
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: respuesta json fallida por ajax

Deberías poder ver la respuesta de la petición con Firebug. ¿No aparece en la pestaña "Red"?

Como ya se comentó, cuando ocurre un error el JSON se corrompe.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 19/11/2010, 16:49
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: respuesta json fallida por ajax

Bueno, aquí en el último mensaje está la respuesta a por qué firebug no muestra la transacción en la consola (hay un iframe metido en el medio):
http://stackoverflow.com/questions/9...-form-ajaxform

Igual, no se usar la red de firebug...

Otra cosa: ajaxForm permite procesar errores así, aunque aún no se utilizar los parametros (en realidad, ni siquiera se cuantos son)

Código Javascript:
Ver original
  1. function manejoErrores(error)
  2.     {
  3.         alert(error);
  4.     }
  #6 (permalink)  
Antiguo 19/11/2010, 16:54
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: respuesta json fallida por ajax

Listo. Queda algo así: function (XMLHttpRequest, textStatus, errorThrown)

El primer parametro es un objeto. El segundo devuelve "error". El tercero dice "Invalid JSON: HO[{"status":1}]", donde "HO" es una cadena que imprimí para romper mi json y debuguear.

En mi caso:
Código Javascript:
Ver original
  1. // formularios ajax    
  2.     var options = {
  3.         success:   enviar,  // post-submit callback
  4.         error: manejoErrores,
  5.         dataType:  'json'      
  6.     };  
  7.    
  8.     $(".form form").ajaxForm(options);  // inicializacion
  9.    
  10.     function enviar(texto, status, xhr, $form){
  11.         alert(status);
  12.         if (texto[0].status == 1)
  13.             window.location.reload();
  14.         else
  15.         {
  16.             $("span.captcha img").attr("src", "<?php echo HTTP_APP; ?>utiles/captcha/captcha.php"+  '?' + (new Date()).getTime());
  17.             $(".mensajeError").css("display", "block").text(texto[0].texto);
  18.         }
  19.     }
  20.    
  21.     function manejoErrores(request, status, errorData)
  22.     {
  23.         alert(errorData);
  24.     }

Gracias!

Etiquetas: ajax, json, respuesta
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 15:07.