Solución:
Según lo indicado por user2246674, usando success
y error
como parámetro de la función ajax es válido.
Para ser coherente con la respuesta anterior, lea el documento:
Aviso de baja:
Las devoluciones de llamada jqXHR.success (), jqXHR.error () y jqXHR.complete () quedarán obsoletas en jQuery 1.8. Para preparar su código para su eventual eliminación, use jqXHR.done (), jqXHR.fail () y jqXHR.always () en su lugar.
Si está utilizando la función de manipulación de devolución de llamada (utilizando el método de encadenamiento, por ejemplo), utilice .done()
, .fail()
y .always()
en lugar de success()
, error()
y complete()
.
Quiero agregar algo en la publicación de @Michael Laffargue:
jqXHR.done()
¡es más rápido!
jqXHR.success()
tienen algo de tiempo de carga en la devolución de llamada y, a veces, pueden sobrepasar el script. Lo encuentro difícil antes.
ACTUALIZAR:
Utilizando jqXHR.done()
, jqXHR.fail()
y jqXHR.always()
se puede manipular mejor con la solicitud ajax. Generalmente, puede definir ajax en alguna variable u objeto y usar esa variable u objeto en cualquier parte de su código y obtener datos más rápido. Buen ejemplo:
/* Initialize some your AJAX function */
function call_ajax(attr){
var settings=$.extend({
call : 'users',
option : 'list'
}, attr );
return $.ajax({
type: "POST",
url: "//exapmple.com//ajax.php",
data: settings,
cache : false
});
}
/* .... Somewhere in your code ..... */
call_ajax({
/* ... */
id : 10,
option : 'edit_user'
change : {
name : 'John Doe'
}
/* ... */
}).done(function(data){
/* DO SOMETHING AWESOME */
});
En palabras simples
$.ajax("info.txt").done(function(data) {
alert(data);
}).fail(function(data){
alert("Try again champ!");
});
si obtiene el texto de información, entonces alertará y cualquier función que agregue o, si es que no puede recuperar el texto de información del servidor, entonces alerta o función de error.