web-dev-qa-db-ja.com

ajax .done内の関数に提供される引数は何ですか?

私は以下を持っています:

    $.ajax(link.href,
    {
        cache: false,
        dataType: 'html'
    })
        .done(onDialogDone)
        .fail(onDialogFail);

これは正常に機能し、onDialogDoneが呼び出されます。ただし、onDialogDoneにどの引数が渡されると思いますか、onDialogFailにはどの引数が必要ですか。

私が尋ねている理由は、TypeScriptを使用していて、onDialogDoneとonDialogFailを定義するときに正しい引数を提供したいからです。

29
user1679941

.done()および.fail()の引数は、対応する_success:_および_error:_パラメーターの引数と同じです $.ajax() 関数、つまり:

_.done( function(data, textStatus, jqXHR) { ... } );
_

そして

_.fail( function(jqXHR, textStatus, errorThrown) { ... } );
_

TypeScriptでは、textStatuserrorThrownは文字列、jqXHRObjectdataはリモートサーバーによって異なりますあなたを送ります。

37
Alnitak

doneハンドラーに渡される3つのパラメーターは次のとおりです。

data, textStatus, jqXHR

詳しくはこちらをご覧ください http://api.jquery.com/jQuery.ajax/

  1. dataは応答メッセージです
  2. textStatusは常にdone関数で成功します
  3. jqXHRは未加工のXMLHttpRequestです
4
Fenton

チェック this out:

メソッド(jqXHRおよびDeferred実装の一部。ここではわかりやすくするためにのみ示しています)

 .ajax().always(function(a, textStatus, b){});

JQuery 1.8で廃止された.complete()メソッドを置き換えます。成功したトランザクションに応じて、引数は.done()と同じです(つまり、a =データ、b = jqXHR)。失敗したトランザクションの場合、引数は.fail()と同じです(つまり、a = jqXHR、b = errorThrown)。これは、上記の完全なコールバック関数の代替構成です。実装の詳細については、deferred.always()を参照してください。

    .ajax().done(function(data, textStatus, jqXHR){});

JQuery 1.8で廃止された.success()メソッドを置き換えます。これは、上記の成功コールバック関数の代替構成です。実装の詳細については、deferred.done()を参照してください。

    .ajax().fail(function(jqXHR, textStatus, errorThrown){});

JQuery 1.8で廃止された.error()メソッドを置き換えます。これは、上記の完全なコールバック関数の代替構成です。実装の詳細については、deferred.fail()を参照してください。

    .ajax().then(function(data, textStatus, jqXHR){}, function(jqXHR, textStatus, errorThrown){});

.done()および.fail()メソッドの機能が組み込まれています。実装の詳細については、deferred.then()を参照してください。

    .ajax().pipe(function(data, textStatus, jqXHR){}, function(jqXHR, textStatus, errorThrown){});

.done()および.fail()メソッドの機能を組み込んで、基になるPromiseを操作できるようにします。実装の詳細については、deferred.pipe()を参照してください。

3
thedev