Quiero usar jQuery ajax para recuperar datos de un servidor.
Quiero poner la definición de la función de devolución de llamada exitosa fuera del .ajax()
bloque como se muestra a continuación. Entonces, ¿necesito declarar la variable de dataFromServer
la siguiente manera para poder utilizar los datos devueltos de la devolución de llamada exitosa?
He visto a la mayoría de la gente definir la devolución de llamada exitosa dentro del .ajax()
bloque. Entonces, ¿es correcto el siguiente código si quiero definir la devolución de llamada exitosa afuera?
var dataFromServer; //declare the variable first
function getData() {
$.ajax({
url : 'example.com',
type: 'GET',
success : handleData(dataFromServer)
})
}
function handleData(data) {
alert(data);
//do some stuff
}
fuente
deferred objects
cosa? No lo había visto antes. Además, parece un poco complicado, ya que el código que define qué devolución de llamada usar está en una ubicación diferente a la llamada AJAX real.success:
. ¡Desacoplar la devolución de llamada del AJAX es algo bueno ! Vea las notas que acabo de agregar al final de mi respuesta.$.get()
por ejemplo, habría sido imposible agregar unerror:
controlador porque$.get
no lo admite. Sin embargo, puede agregar un.fail
al resultado diferido de$.get
.