0

公式の JQuery ドキュメントによると:

jqXHR.always(function(data|jqXHR, textStatus, jqXHR|errorThrown) { });

完全なコールバック オプションの代替構造である .always() メソッドは、非推奨の .complete() メソッドを置き換えます。

リクエストが成功すると、関数の引数は .done() の引数と同じになります: data、textStatus、および jqXHR オブジェクト。失敗したリクエストの場合、引数は .fail() の引数と同じです: jqXHR オブジェクト、textStatus、および errorThrown。実装の詳細については、deferred.always() を参照してください。

そして、次の ajax スクリプトがあるとしましょう:

$.ajax({

    url: 'myPHPScript.php',
    type: 'POST',
    data: {
        param_1: 'value_1',
        param_n: 'value_n'…
    },
    username: 'myLogin',
    password: 'myPassword',
    beforeSend: function() {
        alert('The object was created but not yet initilized');
    }
}).done(function(data, textStatus, jqXHR) {
    alert('All the request was sent and we received data');
}).fail(function(jqXHR, textStatus, errorThrown) {
    alert('Error: the following error was occurred: ' + textStatus + ' Status : ' + jqXHR.Status);
}).always(function() {
    // Here is my problem
});

.always()関数では、ステートメントごとに異なる関数を指定するにはどうすればよいですか。つまり、Deferred が解決されると、always() 関数に次のパラメーター ( data、textStatus、jqXHR ) が渡されますが、deferredが拒否された場合渡されます(jqXHR、textStatus、errorThrown)。

ありがとう

4

1 に答える 1