name - Jquery revisa el éxito de la publicación de Ajax
jquery selector (5)
¿Cómo defino la función de éxito y falla de un ajax $ .post?
Este estilo también es posible:
$.get("mypage.html")
.done(function(result){
alert("done. read "+result.length+" characters.");
})
.fail(function(jqXHR, textStatus, errorThrown){
alert("fail. status: "+textStatus);
})
La documentación está aquí: http://docs.jquery.com/Ajax/jQuery.ajax
Pero, para resumir, la llamada ajax tiene un montón de opciones. los que está buscando son error y éxito.
Lo llamarías así:
$.ajax({
url: ''mypage.html'',
success: function(){
alert(''success'');
},
error: function(){
alert(''failure'');
}
});
He mostrado que la función de éxito y error no toma argumentos, pero pueden recibir argumentos.
La función de error puede tomar tres argumentos: XMLHttpRequest, textStatus y errorThrown.
La función de éxito puede tomar dos argumentos: data y textStatus. La página que solicitó estará en el argumento de datos.
Me preguntaba por qué no proporcionaron en jquery en sí, así que hice algunos cambios en el archivo jquery ,, aquí están el bloque de código modificado:
bloque de código original:
post: function( url, data, callback, type ) {
// shift arguments if data argument was omited
if ( jQuery.isFunction( data ) ) {
type = type || callback;
callback = data;
data = {};
}
return jQuery.ajax({
type: "POST",
url: url,
data: data,
success: callback,
dataType: type
});
Bloque de código modificado:
post: function (url, data, callback, failcallback, type) {
if (type === undefined || type === null) {
if (!jQuery.isFunction(failcallback)) {
type=failcallback
}
else if (!jQuery.isFunction(callback)) {
type = callback
}
}
if (jQuery.isFunction(data) && jQuery.isFunction(callback)) {
failcallback = callback;
}
// shift arguments if data argument was omited
if (jQuery.isFunction(data)) {
type = type || callback;
callback = data;
data = {};
}
return jQuery.ajax({
type: "POST",
url: url,
data: data,
success: callback,
error:failcallback,
dataType: type
});
},
Esto debería ayudar al que intenta atrapar el error en $ .Post in jquery.
Actualizado: O hay otra forma de hacer esto es:
$.post(url,{},function(res){
//To do write if call is successful
}).error(function(p1,p2,p3){
//To do Write if call is failed
});
Si necesita una función de falla, no puede usar las funciones $ .get o $ .post; deberá llamar directamente a la función $ .ajax. Pasas un objeto de opciones que puede tener devoluciones de llamada de "éxito" y "error".
En lugar de esto:
$.post("/post/url.php", parameters, successFunction);
usarías esto:
$.ajax({
url: "/post/url.php",
type: "POST",
data: parameters,
success: successFunction,
error: errorFunction
});
Hay muchas otras opciones disponibles también. La documentación enumera todas las opciones disponibles.
utilizando jQuery 1.8 y superior, debe usar lo siguiente:
var request = $.ajax({
type: ''POST'',
url: ''mmm.php'',
data: { abc: "abcdefghijklmnopqrstuvwxyz" } })
.done(function(data) { alert("success"+data.slice(0, 100)); })
.fail(function() { alert("error"); })
.always(function() { alert("complete"); });
echa un vistazo a los documentos como dice @hitautodestruct.