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) {

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 ().


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.

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.