30

私は次のものを持っています:

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

これは正常に機能し、onDialogDone が呼び出されます。ただし、onDialogDone に提供されると予想される引数と、onDialogFail に表示されると予想される引数は何ですか。

私が質問している理由は、typescript を使用していて、onDialogDone と onDialogFail を定義するときに正しい引数を指定したいからです。

4

3 に答える 3

38

.done()およびの引数は、関数の対応するパラメータ.fail()の引数と同じです。つまり、次のようにsuccess:なります。error:$.ajax()

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

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

typescriptの目的でtextStatusは、errorThrown文字列でjqXHRあり、Objectでありdata、リモートサーバーからの送信内容によって異なります。

于 2012-10-30T14:33:49.863 に答える
4

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

data, textStatus, jqXHR

詳細については、http: //api.jquery.com/jQuery.ajax/をご覧ください。

  1. data応答メッセージです
  2. textStatus機能で常に成功しdoneます
  3. jqXHR生のXMLHttpRequestです
于 2012-10-30T14:34:34.617 に答える
3

これをチェックしてください:

メソッド (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() を参照してください。

于 2012-10-30T14:28:34.520 に答える