¿Cómo manejo 500 errores cuando uso getJSON de jQuery?
Ha habido un par de preguntas sobre el manejo de errores con getJSON() y JSONP , pero no estoy trabajando con JSONP, solo con JSON ordinario.
Otra respuesta sugiere usar .ajaxSetup() antes de llamar a getJSON() , así que probé esto:
$.ajaxSetup({ "error":function() { alert('Error!'); }}); $.getJSON('/book_results/', function(data) { # etcPero encuentro que la alerta siempre se activa, incluso cuando el resultado está bien formado.
¿Algunas ideas?
El método getJSON no devuelve errores de forma nativa, pero puede sumergirse en el objeto xhr que se devuelve como parámetro en la devolución de llamada.
El método getJSON es una función abreviada para jQuery.ajax . Usando jQuery.ajax puede lograr fácilmente el manejo de errores:
$.ajax({ url: 'http://127.0.0.1/path/application.json', dataType: 'json', success: function( data ) { alert( "SUCCESS: " + data ); }, error: function( data ) { alert( "ERROR: " + data ); } });Si está utilizando jquery versión 1.5 o superior, puede usar los nuevos métodos .success(function), .error(function) y .complete(function)
Ejemplo de http://api.jquery.com/jQuery.get/
// Assign handlers immediately after making the request, // and remember the jqxhr object for this request var jqxhr = $.get("example.php", function() { alert("success"); }) .success(function() { alert("second success"); }) .error(function() { alert("error"); }) .complete(function() { alert("complete"); }); // perform other work here ... // Set another completion function for the request above jqxhr.complete(function(){ alert("second complete"); });Funciona perfecto para mí. espero que esto ayude
puede verlo en jquery api getJSON: http://api.jquery.com/jQuery.getJSON/
$.getJSON(url).done(function(data){ $("#content").append(data.info); }) .fail(function(jqxhr){ alert(jqxhr.responseText); });// jquery1.5+ la devolución de llamada fallida se activará cuando el texto no sea la cadena json correcta o cualquier otra solución fallida