$( document ).ready(function() {
        function doAjax( time_from, time_to ){
            var dataRsp;
            $.ajax({
              url: "/query/"+time_from+"/"+time_to,
              type: "GET",
              dataType: "json",
              success: function(data){ dataRsp = data; },
            });
            alert(JSON.stringify(dataRsp));
        };
      doAjax(0,0);
  }


上面是我的代码片段,我需要将ajax响应数据存储在全局变量dataRsp中,但是我做不到这一点,我对JS和jquery中的变量作用域感到非常困惑,非常感谢。

最佳答案

将您的警报放入成功回调中

    $( document ).ready(function() {
        function doAjax( time_from, time_to ){
            var dataRsp;
            $.ajax({
              async: false,
              url: "/query/"+time_from+"/"+time_to,
              type: "GET",
              dataType: "json",
              success: function(data){
                  dataRsp = data;
                  return(JSON.stringify(dataRsp));
              }
            });

        };
      var x =doAjax(0,0);
      alert(x);
  }


或者另一个选择是添加async: false参数。而且,不需要,之后的success

10-07 21:49