新しい jQuery AJAX コードでは、成功とエラーの代わりに .done() と .fail() を使用する必要がありますか? 質問する

新しい jQuery AJAX コードでは、成功とエラーの代わりに .done() と .fail() を使用する必要がありますか? 質問する

私は次のようにコーディングしました:

$.ajax({ cache: false,
    url: "/Admin/Contents/GetData",
    data: { accountID: AccountID },
    success: function (data) {
        $('#CityID').html(data);
    },
    error: function (ajaxContext) {
        alert(ajaxContext.responseText)
    }
});

しかし、jQueryを見ると.ajax()ドキュメンテーション最後に、以下のようにコーディングするか、少なくとも と を追加することを提案しているよう.done()です.fail()

var request = $.ajax({ cache: false,
    url: "/Admin/Contents/GetData",
    data: { accountID: AccountID }
});

request.done(function (data) {
    xxx;
});
request.fail(function (jqXHR, textStatus) {
    xxx;
});

アップデート

このようにコーディングした場合、同じになりますか、それとも 3 つに分割することに何か利点がありますか?

$.ajax({ cache: false,
    url: "/Admin/Contents/GetData",
    data: { accountID: AccountID }
}).done(function (data) {
    xxx;
}).fail(function (jqXHR, textStatus) {
    xxx;
});

ベストアンサー1

user2246674 が述べているように、ajax 関数のパラメータとして および を使用することは有効ですsuccesserror

先例の回答と一貫性を保つために、ドキュメントを読んでください。

廃止通知:

jqXHR.success()、jqXHR.error()、および jqXHR.complete() コールバックは、jQuery 1.8 で非推奨になります。これらのコールバックが最終的に削除されることに備えてコードを準備するには、代わりに jqXHR.done()、jqXHR.fail()、および jqXHR.always() を使用してください。

コールバック操作関数を使用している場合(たとえば、メソッドチェーンを使用)、.done().fail()、の.always()代わりに 、success()を使用します。error()complete()

おすすめ記事