Eu codifiquei assim:
$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID },
success: function (data) {
$('#CityID').html(data);
},
error: function (ajaxContext) {
alert(ajaxContext.responseText)
}
});
Mas quando olho para a .ajax()
documentação do jQuery no final, parece sugerir que eu deveria codificar como este abaixo ou pelo menos sugere adicionar um .done()
e um .fail()
:
var request = $.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID }
});
request.done(function (data) {
xxx;
});
request.fail(function (jqXHR, textStatus) {
xxx;
});
Atualizar
Se eu codifico assim, é o mesmo ou há alguma vantagem em dividi-lo em três?
$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID }
}).done(function (data) {
xxx;
}).fail(function (jqXHR, textStatus) {
xxx;
});
.error
,.success
) que foram descontinuadas em favor do padrão Diferido mais universal, mas os parâmetros para oajax
método não são descontinuados e são válidos e aceitáveis - mesmo no jQuery 1.9 / 2.0! Em todas as formas atuais,ajax
ainda retorna um adiado; possivelmente com retornos de chamada adiados já anexados.jqXHR.success = jqXHR.done;
.success
,fail
,always
.Quero adicionar algo na publicação de @Michael Laffargue:
jqXHR.done()
é mais rápido!jqXHR.success()
têm algum tempo de carregamento no retorno de chamada e às vezes podem exagerar no script. Acho isso da maneira mais difícil antes.ATUALIZAR:
Usando
jqXHR.done()
,jqXHR.fail()
ejqXHR.always()
você pode melhor manipular com o pedido ajax. Geralmente, você pode definir ajax em alguma variável ou objeto e usar essa variável ou objeto em qualquer parte do seu código e obter dados mais rapidamente. Bom exemplo:fonte
Em palavras simples
se receber o info.text, ele alertará e qualquer função que você adicionar ou, se houver alguma, incapaz de recuperar o info.text do servidor, alertará ou alertará a função de erro.
fonte
Quando migrarmos o JQuery de 1.x para 2x ou 3.x em nosso aplicativo existente antigo, usaremos .done, .fail em vez de êxito, o erro, pois a gradação de classificação do JQuery será preterida nesses métodos. Por exemplo, quando fazemos uma chamada para métodos da web do servidor, o servidor retorna objetos prometidos aos métodos de chamada (métodos Ajax) e esses objetos promissores contêm os métodos .done, .fail..etc. Abaixo está o exemplo (é para solicitação POST da mesma maneira que podemos construir para o tipo de solicitação como GET ...)
fonte