2009-06-21 24 views
10

Hay un error indefinido debido a la solicitud de Ajax en jQuery. Pero funciona a nivel local. Error de referencia en jquery1.3.2.js @ 3633 línea dejQuery XMLHttp Error de solicitud

xhr.send(s.data); 

Mi código es:

$.ajax({ 
    type: "POST", 
    url: 'index.php', 
    data: "action=showpath&type=images&path=&default=1", 
    cache: false, 
    dataType: "html", 
    success: function(data){ 
     $('#addr').html(data); 
    }, 
    error:function (xhr, ajaxOptions, thrownError){ 
      alert(xhr.status); 
      alert(thrownError); 
    }  
}); 

alertas en mi código de muestra (0, 'indefinido');

¿Qué estoy haciendo mal?

Respuesta

23

Esto podría estar sucediendo si su solicitud de ajax se cancela antes de que se complete. jQuery arroja el evento de error cuando el usuario navega fuera de la página, ya sea refrescando, haciendo clic en un enlace o cambiando la URL en el navegador. Puede detectar este tipo de errores mediante la implementación de un controlador de errores para la llamada ajax, e inspeccionar el objeto XMLHttpRequest:

$.ajax({ 
    /* ajax options omitted */ 
    error: function (xmlHttpRequest, textStatus, errorThrown) { 
     if(xmlHttpRequest.readyState == 0 || xmlHttpRequest.status == 0) 
       return; // it's not really an error 
     else 
       // Do normal error handling 
}); 
0

No podría decirte de pasada, pero es probable que sea algo del lado del servidor en index.php. La mejor forma de saberlo es observar la respuesta sin procesar utilizando un depurador http. La extensión de firefox Firebug tiene una muy buena, y fidder2 es una opción fornida.

+0

He probado con Firebug. Hay una respuesta errónea, pero su estado es 200 - OK. La solicitud de Ajax devuelve ajaxError sin explicación. –

+0

He encontrado la misma descripción del problema en http://www.mail-archive.com/[email protected]/msg65106.html Pero todavía no hay solución. –

Cuestiones relacionadas