私はjQueryのアヤックスコールがあります。最初の.ajax呼び出しの結果に基づいて別のjQuery .ajax呼び出しを開始する方法はありますか?
$j.ajax({
type: "POST",
url: "/Services/Cart.asmx/UpdateQuantity",
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
var d = msg.d;
// etc.
},
error: function(xhr, msg) {
var response = JSON.parse(xhr.responseText);
var cart = $j('#cart');
if (response.Message) {
cart.before(' <div class="error">' + response.Message + '</div> ');
}
else {
cart.before(' <div class="error">An unexpected error occurred.</div> ');
}
},
complete: function(request, settings) {
// Some other stuff.
}
}); // end ajax
alert('Initially thought this would be called after above .ajax call complete. But it is not. Rather, it is called before success etc.')
をしかし、この最初のAJAX呼び出しによって返された一部のデータに基づいて、私は2番目のアヤックス通話を開始します。しかし、コールバックが最初のものに対してどのように設定されているかによって、順番に(つまり、上記の最後のアラート( '最初...)'の行のどこに)発生しないのでしょうか?最新の更新されたクライアント側のDOMデータ
別の.ajaxコールを送信するにはどうすればよいですか?私はすぐに完全なイベントの中でいくつかのテストをしましたが、それは行き過ぎではないようです。
「jQuery in Action」は、ここでは、何が起こっているのかを理解するために時間を捜すのを待っていますが、まだ時間はありません。
UPDATE:Erk。明白なものが最初に期待どおりに機能しないとき、問題は通常、椅子とモニターの間にあります。私はこれを全裸の脳のおならに置く。私が元々どのように設定していたのか(成功コールバックの中で2番目の.ajax呼び出しを呼び出すことは非常に明白でしたが、2番目の.ajax呼び出しには小さな構文エラーがありました。 )。
そして、私が最初に行ったことで、@ kgiannakakisが答えとして注目されていました。そして、あなたは控えめに過小評価された "あなたは同期を設定することができますが、これは推奨されるテクニックではありません。