2009-08-29 17 views

Respuesta

3

Puede inspeccionar el contenido de la respuesta devuelta a su llamada jQuery ajax. Usar una herramienta como Firebug puede hacer esto bastante fácil.

Django seguirá devolviendo la página de depuración, es solo que está respondiendo a la llamada ajax en lugar de una solicitud de navegador normal.

A menudo es una buena técnica para hacer que sus cosas funcionen con las solicitudes habituales, y luego "ajaxificarlas" solo una vez que esté seguro de que el código del lado del servidor está funcionando.

+0

Lo que resulta molesto es que está todo en formato HTML no analizado. Supongo que podría simplemente cargarlo en un div ... – victor

+2

En realidad Firebug puede abrir el HTML devuelto como una nueva pestaña en Firefox, por lo que puede verlo en el formato adecuado. –

+0

Ah, ja, eso lo hará! – victor

0

Probablemente la forma más simple es desactivar la depuración y confiar en los mensajes de depuración de correo electrónico que envía Django. Sin embargo, esto no suele ser práctico, pero funciona.

0

Prueba django_extensions + Werkzeug.

1

Cuando recibe un error de AJAX como ese, puede reemplazar el contenido de su documento actual con el documento de depuración/error devuelto por el servidor. Por ejemplo, se puede hacer algo como lo siguiente:

$.ajax({ 
    url: 'failing_controller/', 
    type: 'POST' 
}) 
    .fail(function (jqXHR, textStatus, errorThrown) { 
     document.open(); 
     document.write(jqXHR.responseText); 
     document.close(); 
    }) 
    .success(function (data, textStatus, jqXHR) { 
     // ... handle data ... 
    }); 

Esto puede ser muy útil durante el desarrollo y la depuración, ya que le permite inspeccionar el estado del servidor en tiempo real. Es probable que desee reemplazar el controlador de fallas con algo más apropiado en un entorno de producción.

Cuestiones relacionadas