Quais são os parâmetros enviados para .fail no jQuery?

107

Não consigo encontrar a documentação sobre quais são os nomes dos três parâmetros quando $.ajaxfalha.

No momento, estou apenas usando:

.fail(function(A, B, C) {
Phillip Senn
fonte
2
Provavelmente a mesma que são passados para o errorcallback: jqXHR, textStatus, errorThrown.
Felix Kling

Respostas:

93

De acordo com http://api.jquery.com/jQuery.ajax/, o failretorno de chamada deve ser:

jqXHR, textStatus, errorThrown

mesmo que error, mas errorestá obsoleto:

Aviso de descontinuação: Os retornos de chamada jqXHR.success (), jqXHR.error () e jqXHR.complete () serão descontinuados no jQuery 1.8. Para preparar seu código para sua eventual remoção, use jqXHR.done (), jqXHR.fail () e jqXHR.always ().

nathanjosiah
fonte
Ooh, eu não percebi. Obrigado por compartilhar essa parte da documentação. Estou feliz que os retornos de chamada do jQuery XHR estejam finalmente correspondendo aos Adiados.
Michael Mior
2
Oh, mas o método ajaxError tem event, jqXHR, ajaxSettings, thrownError.
Phillip Senn
Eles são todos o mesmo retorno de chamada que recebe os mesmos argumentos, apenas usos e contextos diferentes.
nathanjosiah
6
Onde afirma que o retorno de chamada com falha obtém esses 3 argumentos? Ele também afirma isso para o parâmetro de configuração completo. Eles são diferentes, por exemplo, os argumentos para completesão diferentes dos argumentos passados ​​para done.
Tom
5
@Tom, eu sei que estou muito atrasado para responder a você, mas está declarado aqui: api.jquery.com/jQuery.ajax/#jqXHR ( jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});)
nathanjosiah
27

Aqui está um exemplo depois de procurar o mesmo problema:

this.GetOrderList = function (customerId) {
    var self = this;
    $.post('MySuperServer.aspx', { customerId: customerId })
    .done(function (dataStr) {
        var orderList = jQuery.parseJSON(dataStr);
        self.process(orderList);
    })
    .fail(function (jqXHR, textStatus, error) {
        console.log("Post error: " + error);
    });
}

Durante a depuração, tenho:

  • jqXHR é um objeto JS
  • textStatus é "erro"
  • o erro é "Erro interno do servidor", é a mensagem de erro enviada pelo servidor.
Olivier de Rivoyre
fonte
1
Sim, acho que o que eles estão tentando conotar usando a palavra textStatus é que esta é a variável de status e que está em formato de texto. Em comparação com jqXHR, que é um objeto jQuery.
Phillip Senn