Me he codificado así:
$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID },
success: function (data) {
$('#CityID').html(data);
},
error: function (ajaxContext) {
alert(ajaxContext.responseText)
}
});
Pero cuando miro la .ajax()
documentación de jQuery al final parece sugerir que debería estar codificando así a continuación o al menos sugiere agregar ay .done()
a .fail()
:
var request = $.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID }
});
request.done(function (data) {
xxx;
});
request.fail(function (jqXHR, textStatus) {
xxx;
});
Actualizar
Si codifico así, ¿es lo mismo o hay alguna ventaja en dividirlo en tres?
$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID }
}).done(function (data) {
xxx;
}).fail(function (jqXHR, textStatus) {
xxx;
});
.error
,.success
) que están en desuso a favor del patrón diferido más universal, pero los parámetros delajax
método no están en desuso y son válidos y aceptables, ¡incluso en jQuery 1.9 / 2.0! En todas las formas actuales,ajax
aún devuelve un diferido; posiblemente con devoluciones de llamada diferidas ya adjuntas.jqXHR.success = jqXHR.done;
.success
,fail
,always
.Quiero agregar algo en la publicación de @Michael Laffargue:
jqXHR.done()
¡es más rápido!jqXHR.success()
tiene algo de tiempo de carga en la devolución de llamada y, a veces, puede exceder la secuencia de comandos. Lo encuentro en el camino difícil antes.ACTUALIZAR:
Usando
jqXHR.done()
,jqXHR.fail()
yjqXHR.always()
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:fuente
En palabras simples
si obtiene el info.text, entonces alertará y cualquier función que agregue o, si hay alguna, cómo no puede recuperar info.text del servidor, entonces la función de alerta o error.
fuente
Cuando vamos a migrar JQuery de 1.xa 2x o 3.x en nuestra antigua aplicación existente, usaremos .done, .fail en lugar de éxito, error ya que la gradación ascendente de JQuery va a ser obsoleta por estos métodos. Por ejemplo, cuando realizamos una llamada a los métodos web del servidor, el servidor devuelve los objetos de promesa a los métodos de llamada (métodos Ajax) y estos objetos de promesa contienen métodos .done, .fail..etc. Por lo tanto, haremos lo mismo para responder con éxito y fallar. A continuación se muestra el ejemplo (es para la solicitud POST de la misma manera que podemos construir para el tipo de solicitud como GET ...)
fuente