jquery django getjson simplejson

jQuery.getJSON no desencadena la devolución de llamada



django simplejson (4)

Tengo un código html:

<button>asd</button> <script type = "text/javascript"> $(''button'').click( function() { $.getJSON(''/schedule/test/'', function(json) { alert(''json: '' + json + '' ...''); }); } ); </script>

y vista correspondiente:

def test(request): if request.method == ''GET'': json = simplejson.dumps(''hello world!'') return HttpResponse(json, mimetype = ''application/json'')

La vista se ejecuta (probada mediante print ), la variable json se inicializa pero no aparece ninguna alerta. ¿Qué hice mal? Ya he visto algunos documentos en este ( http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback por ejemplo) pero no encontré una respuesta.

EDITAR: El problema era que HttpResponse no se importó ... Desafortunadamente Django no dio ningún error al respecto. Todo lo demás fue correcto. Saludos
chriss


¿Estás seguro de que el JSON es válido? eche un vistazo a la respuesta directamente o use Firebug


Es probable que el json no esté formado correctamente. A veces esto me pasa cuando mi código, que debería estar produciendo json, está generando un error. Dos opciones:

  • Use firebug para ver la respuesta JSON

  • Configure el manejo de errores en su código jquery usando las opciones de jQuery.ajaxSetup tales como:

    $.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) { alert(textStatus); alert(errorThrown); alert(XMLHttpRequest.responseText); }});

Usar el manejo de errores para la depuración es excelente, ya que sabrá de inmediato cuando haya un problema con su respuesta. Puede consultar la documentación de jQuery para jQuery.ajax que tiene todas las opciones disponibles para jQuery.ajaxSetup.

EDITAR: Una tercera opción sería abrir la URL que debería generar el JSON y ejecutar el resultado a través de JSON Lint para validarlo.



Creo que te estás perdiendo el $ final en el patrón de url.