¿cómo puedo definir la función de éxito y falla de ajax $ .post?Jquery comprobando el éxito de la publicación de Ajax
Respuesta
La documentación está aquí: http://docs.jquery.com/Ajax/jQuery.ajax
Pero, en resumen, la llamada ajax lleva un montón de opciones. los que está buscando son error y éxito.
Se podría llamar así:
$.ajax({
url: 'mypage.html',
success: function(){
alert('success');
},
error: function(){
alert('failure');
}
});
he mostrado la función de éxito y error sin 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.
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".
lugar de esto:
$.post("/post/url.php", parameters, successFunction);
puede utilizar esta:
$.ajax({
url: "/post/url.php",
type: "POST",
data: parameters,
success: successFunction,
error: errorFunction
});
Hay un montón de otras opciones disponibles también. The documentation enumera todas las opciones disponibles.
hay algo específico que se verifica en el lado del servidor, durante la llamada url.php? como en cómo sabría si la llamada fue exitosa o errónea? ¿Tengo que devolver verdadero/falso, nulo o algo por el estilo? Estoy probando esto en puntales, y un poco confundido lo que mi C.A la clase de decisión debería regresar. Como en la forma en que sé que algo pasó con éxito o no lo hizo .. –
@Kaushik: Se basa en el código de estado HTTP devuelto por el servidor. Básicamente, todo lo que no sea 2xx o 304 (no modificado) se considera un error. Las otras condiciones son si la conexión se agota o no puede conectarse al servidor por alguna razón. –
¡Perfecto! eso tiene sentido. Aclamaciones. –
Me preguntaba, ¿por que aún no ha proporcionan en jQuery en sí, así que hice algunos cambios en el archivo de jQuery ,,, aquí son el bloque de código cambiado:
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 detectar el error en $ .Post en jquery.
Actualizado: o hay otra manera 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
});
usando jQuery 1.8 y superiores, debe usar los siguientes:
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"); });
Mira la documentación tal como declaró @hitautodestruct .
Esto se puede utilizar para $ .post y $ .get !! Como se muestra en [documentos] (http://api.jquery.com/jQuery.post/) – Brainfeeder
Esta parece ser la mejor respuesta a partir de 2014. – TheCarver
sigue siendo el mejor con v3.x en 2016 – qwertzman
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);
})
- 1. Jquery Ajax función de éxito/error de publicación
- 2. jQuery AJAX Método éxito
- 3. Jquery: publicación ajax y codificación
- 4. jQuery ajax campo de archivo de publicación
- 5. Jquery Publicación de AJAX en PHP
- 6. Jquery ajax solicitud de publicación no funciona
- 7. jQuery Parámetros de la función de éxito Ajax
- 8. La publicación jQuery .ajax falla con el objeto JSON grande
- 9. IE no desencadena el éxito de jQuery Ajax
- 10. jQuery ajax éxito callback no dispara
- 11. jquery ajax devuelve el error, pero es el éxito
- 12. Se está cortando la matriz sobre la publicación de ajax. Límite de publicación Ajax?
- 13. jquery - enviar publicación sincrónicamente (no ajax)
- 14. jquery ajax devolución de llamada de éxito no se llama
- 15. Cómo enlazar evento tras el éxito Ajax en jQuery
- 16. Jquery AJAX: ¿Cómo cambiar el valor del botón en "éxito"?
- 17. pasando variables a jQuery ajax éxito o funciones de error
- 18. mejor manera de comprobar si la petición AJAX tuvo éxito en jQuery
- 19. Error de la función de éxito y error de Ajax
- 20. window.open() funciona diferente en el éxito AJAX
- 21. Diálogo JQuery UI - Ajax Actualización del éxito $ (this) .dialog ('close');
- 22. ¿Cómo establecer el tiempo máximo de ejecución para la publicación ajax con jQuery?
- 23. 'Falló la publicación' pero la compilación tuvo éxito?
- 24. La publicación AJAX se cancela mediante la redirección
- 25. Intentando que PHP lea la publicación de AJAX
- 26. Función de éxito de AJAX en el servidor
- 27. Jquery envíe un formulario a través de .submit() sobre el éxito de AJAX ... ¿cómo?
- 28. Función de llamada Ajax después del éxito
- 29. Consejos de seguridad para la publicación de datos de jquery ajax?
- 30. Mostrar la imagen de carga durante la publicación con ajax
Tenga en cuenta el aviso de desaprobación aquí: http://bit.ly/nuiyyE. A partir de jQuery 1.8, los métodos de éxito, error y completo quedarán en desuso en su lugar, use: done, fail y always. – hitautodestruct
Si leo correctamente, el aviso de desaprobación * solo * se aplica a success() etc. en el objeto jqXHR devuelto, pero no a los especificados utilizando el objeto de configuración. Entonces '$ .ajax (url) .success (...)' quedaría obsoleto y debería usar '$ .ajax (url) .done (...) 'en su lugar. '$ .ajax (url, {success: ...}' sigue siendo correcto, no veo avisos de obsolescencia en las descripciones individuales de esos miembros de configuración. –
Una de estas respuestas documenta lo que @hitautodestruct ha mencionado. Haga la respuesta aceptada si así lo desea. – MrBoJangles