6

次のようなjquery ajaxコードがあります。

$(document).ready(function() {
  var global_arr = new Array();
  $.ajax({
    url: 'result.php',
    type: 'post',
    dataType: 'json',
    success: function(data) {
       $.each(data, function(key, value) {
          global_arr.push(value.name);
       });
       alert(global_arr); //get correct value, works fine
     }
  }); //end of ajax function
  alert(global_arr); //get null, it doesn't work properly
});

global_arr を警告する行に注意してください。なぜ $.ajax() 関数から値を取得できないのでしょうか? これについて誰か助けてくれてありがとう。

4

4 に答える 4

5

Ajax は非同期です。JS エンジンが機能していない alert() 行に到達した時点では、AJAX 呼び出しはサーバーからの応答を取得して変数を設定する機会がまだありません。

そのため、内部の alert() が機能します。サーバーから応答が来ると実行されます。

于 2013-04-03T19:06:39.390 に答える