¿Alguien puede ayudarme?
No puedo entender la diferencia entre successy .done()de $.ajax.
Si es posible, dé ejemplos.
jquery
jquery-deferred
Poonam Bhatt
fuente
fuente

Respuestas:
En resumen, desacoplar la función de devolución de llamada exitosa de la función ajax para que luego pueda agregar sus propios controladores sin modificar el código original (patrón de observador).
Encuentre información más detallada desde aquí: https://stackoverflow.com/a/14754681/1049184
fuente
success:usado como parámetro y.success()como método en unjqXHR. El último está siendo desaprobado, pero el primero es sobre lo que estaba preguntando el OP.successsolo se activa si la llamada AJAX es exitosa, es decir, finalmente devuelve un estado HTTP 200.errorse activa si falla ycompletecuando finaliza la solicitud, independientemente del éxito.En jQuery 1.8 en el
jqXHRobjeto (devuelto por$.ajax)successfue reemplazado condone,errorconfailycompleteconalways.Sin embargo, aún debería poder inicializar la solicitud AJAX con la sintaxis anterior. Entonces estos hacen cosas similares:
Este cambio es por compatibilidad con el objeto diferido de jQuery 1.5 . Diferido (y ahora
Promise, que tiene soporte completo para navegadores nativos en Chrome y FX) le permite encadenar acciones asincrónicas:Esta cadena de funciones es más fácil de mantener que una pirámide anidada de devoluciones de llamada con la que obtiene
success.Sin embargo, tenga en cuenta que
doneahora está en desuso a favor de laPromisesintaxis que usa en suthenlugar:Vale la pena adoptar esto porque
asyncyawaitextender promete una sintaxis mejorada (y manejo de errores):fuente
success, en jQuery 1.8 que ha sido reemplazado pordone. Funcionan de la misma manera, perodonees más coherente con el resto de jQuery..donela primera (y ahora callejón sin salida) de jQuery sobre lo que se convirtióPromisey que ahora tiene un soporte de lenguaje bastante completo. En nuevos proyectos, usaríaconst response = await fetch(...)en su lugar..success()solo se llama si su servidor web responde con un encabezado HTTP 200 OK, básicamente cuando todo está bien.Las devoluciones de llamada adjuntas a done () se activarán cuando se resuelva el aplazado. Las devoluciones de llamada adjuntas a fail () se activarán cuando se rechace el aplazado.
fuente
successes la devolución de llamada que se invoca cuando la solicitud es exitosa y es parte de la$.ajaxllamada.donees en realidad parte deljqXHRobjeto devuelto por$.ajax()y reemplazasuccessen jQuery 1.8.fuente