0

別のメソッドを実行する前に完了する必要がある 2 つのクロス ドメイン jsonp リクエストがあります。だから私は $.when() 関数を試しました

$.when(getX(), getY()).then(createXY);

getX() と getY() は、別々の jsonp コールバックを使用して、2 つの異なるドメインに対して $.ajax() リクエストを作成します。

私の最初の考えに反して、コールバックが戻る前に createXY() が呼び出されます。したがって、createXY() には必要なデータがありません。

複数の非同期jsonpリクエストが完了したときに関数を呼び出す例を教えてください。

4

2 に答える 2

0

が機能するには$.when()、待機している遅延オブジェクトを渡す必要があります。getX()関数とgetY()関数が、それぞれの jQuery ajax 呼び出しによって作成された遅延オブジェクトを返すことを確認してください。

ヘルプが必要な場合は、getX()とのコードを投稿してgetY()ください。

のjQueryドキュメント$.when()からの例を次に示します。

$.when($.ajax("/page1.php"), $.ajax("/page2.php")).done(function(a1,  a2){
  /* a1 and a2 are arguments resolved for the
      page1 and page2 ajax requests, respectively */
  var jqXHR = a1[2]; /* arguments are [ "success", statusText, jqXHR ] */
  if ( /Whip It/.test(jqXHR.responseText) ) {
    alert("First page has 'Whip It' somewhere.");
  }
});
于 2013-03-27T00:39:50.497 に答える
0

コードの非常にばかげた間違い。getX() と getY() は $.ajax() を呼び出しましたが、それを返しませんでした。$.ajax() 呼び出しを return でラップすると、コードは正常に機能するようになりました。ご助力いただきありがとうございます!

于 2013-03-30T20:53:00.500 に答える