¿Existe una buena forma de obtener la información de depuración que proporciona Django al usar jQuery para realizar llamadas Ajax? Ahora cuando realizo una llamada, solo veo un error http/200 server en la ventana de python runserver, pero como la llamada se realiza a través de javascript, no obtengo una página de depuración con toda la información.¿Cómo obtener información de depuración de Django cuando se usa la llamada Ajax?
Respuesta
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.
Puede utilizar este fragmento de código: http://www.djangosnippets.org/snippets/650/ para obtener los trazados de texto plano para ver en firebug, en lugar de HTML.
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.
Prueba django_extensions + Werkzeug.
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.
- 1. ¿Cómo puedo obtener información de vuelta de una llamada Ajax cuando la conectividad a Internet se pierde
- 2. ¿Cómo se evitan las funciones anidadas cuando se usa AJAX?
- 3. Codificación cartográfica cuando se usa Ajax? JQuery
- 4. La codificación UTF8 no funciona cuando se usa ajax
- 5. Ajax llamada fracasar en Django
- 6. ¿Cómo obtener información sobre herramientas para mostrar cuando se usa el mouse sobre ToolStripStatusLabel?
- 7. Programar mostrar información sobre herramientas después de una llamada ajax
- 8. la función de devolución de llamada no funciona cuando se usa la función getJSON en jQuery
- 9. ¿Cómo se usa `to_sql` en AREL cuando se usa` average() `?
- 10. ¿Cómo se mapea la memoria cuando se usa la horquilla?
- 11. En PHP, ¿cómo se obtiene la clase llamada con alias cuando se usa class_alias?
- 12. Javascript Sintaxisaluminación perdida cuando se realiza una llamada AJAX
- 13. Configuración del directorio virtual cuando se usa IIS para la depuración MVC de ASP.NET
- 14. ¿Cómo dejo de obtener ImportError: no se pueden importar las configuraciones 'mofin.settings' cuando se usa django con wsgi?
- 15. ¿Cómo se usa menos css con django?
- 16. Ajax llamada de Bookmarklet
- 17. ¿Cómo controlar el nivel de información de depuración en glib?
- 18. Quieting pylint falsos positivos cuando se usa django
- 19. Django syncdb conflictivo related_name cuando se usa herencia y ForeignKey
- 20. ¿Cómo manejo/arreglo "Error al obtener la secuencia de respuesta (ReadDone2): ReceiveFailure" cuando se usa MonoTouch?
- 21. Pasar información de javascript a la aplicación django y volver
- 22. Obtener información previamente ingresada en Django FormWizard
- 23. ¿Para qué se usa Django?
- 24. ¿Cómo puede la extensión de Chrome obtener una devolución de llamada cuando se inicia el navegador?
- 25. ¿Cómo registrar la información de depuración de ssh?
- 26. ¿Cómo detener la propagación de eventos cuando se usa delegate?
- 27. ¿Cómo se usa find_module?
- 28. ¿Cómo paso la información de contexto de la plantilla cuando uso HttpResponseRedirect en Django?
- 29. Datatable no se actualiza después de la exitosa llamada ajax
- 30. jquery ajax devolución de llamada de éxito no se llama
Lo que resulta molesto es que está todo en formato HTML no analizado. Supongo que podría simplemente cargarlo en un div ... – victor
En realidad Firebug puede abrir el HTML devuelto como una nueva pestaña en Firefox, por lo que puede verlo en el formato adecuado. –
Ah, ja, eso lo hará! – victor