2012-01-27 15 views
0

ここに質問があります。のは、私はそうのようにjQueryを使っていくつかのAjaxを持っているとしましょう:

var jqXHR = $.ajax({ 
     type: 'POST', 
     success: function(data) { 
      if(data != true) 
      { 
        return false; 
      } 
     } 
}); 

私は$アヤックスがjqXHRオブジェクトを返すことを知っています。私の質問は次のとおりです:

jqXHRオブジェクトを使用してmy $ .ajax呼び出しの成功関数の戻り値を取得することはできますか?もしそうなら、どうしたらいいですか? jqXHRオブジェクトを使用することができない場合は、asyncを設定せずに、成功関数の戻り値にアクセスできる方法がありますか?$ .ajaxのfalse?

お願いします。

+1

'async:false'が敵です。避けてください。成功コールバックで非同期リクエストを使用する –

答えて

3

asyncfalseに設定することはできません。私はそれがサーバーの応答が来るまでページを完全に停止するため、falseに設定しないことをお勧めします。接続が遅い場合やサーバーがヒーブ操作のために応答する時間がかかる場合は、ブラウザをハングアップすることもあります。

コードを実行するには、ajaxの成功ハンドラを実行してください。このコードは、外部で実行する予定です。

+0

async:falseを使用すると、私はもはやAjaxを使用していません。私はそれをしたくない – user765368

0

ことが可能です - 方法では - 、あなたは私がAJAXコールバックの離れを知っているデータへのアクセスを得るために

jqXHR.then(function(data) { ... }); 

唯一の他の方法を行うことができるようにjqXHRも繰延オブジェクトで返さAjaxリクエストが送信された後に複数回使用でき、サーバーから受信したデータが常に返されるというのはクールなことです。

関連する問題