2012-10-30 10 views
23

私は、次があります。ajax .done内の関数にはどのような引数が指定されていますか?

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

これは正常に動作してonDialogDoneが呼び出されます。しかし、onDialogDoneにどのような引数を渡す必要がありますか、そしてonDialogFailのために何を期待するべきでしょうか。

私がtypeScriptを使用しているため、私がonDialogDoneとonDialogFailを定義するときに正しい引数を指定したいからです。

答えて

33

引数、すなわち、$.ajax()機能に対応するsuccess:error:パラメータの引数と同じである。typescriptですの目的のため

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

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

textStatusおよびerrorThrownは文字列であり、jqXHRObjectであり、dataは、リモートサーバーから送信されるものによって異なります。doneハンドラに渡さ

+0

「this」は、呼び出されるajaxメソッド($ .ajaxや$ .getJSONなどのショートカットメソッドなど)に関係なく、 'this'はjQuery.ajaxオブジェクトに使用されます(*結果* jqXHRオブジェクトではありません)。 – Synexis

2

チェックthisアウト:(だけ明確にするため、ここで示したjqXHR及び繰延実装の一部、)

方法は

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

のjQuery 1.8で廃止されましたメソッド.complete()を置き換えます。 成功したトランザクションに応答して、引数は.done()と同じです(つまりa = data、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){}); 

jerery 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の機能を内蔵します。 実装の詳細については、deferred.pipe()を参照してください。 .done().fail()ため

+0

別のWebページからのコピー&ペーストは非常に有益なものではありません。 – Alnitak

+1

上記のリンクが指定されています。なぜこれが役に立たないのか説明できますか? – thedev

+0

なぜあなたは_additional_ contextの大部分を必要な情報と混ぜて提供しているのですが、理由を説明することなく、読者を混乱させるでしょう。 – Alnitak

4

3つのパラメータは以下のとおりです。

data, textStatus, jqXHR 

あなたがここで詳細を読むことができます:http://api.jquery.com/jQuery.ajax/

  1. data
  2. textStatusは常になりますdoneで成功応答メッセージであります機能
  3. jqXHRは生のXMLHttpRequestです
関連する問題