Ajax全局变量或同步AJAX

时间:2015-03-14 22:49:58

标签: javascript jquery ajax global-variables

我想使用AJAX从另一个页面获取数据。我还想将这个AJAX调用包装到我的用户定义函数"。

但我不能这样写:

 function func(){
      var tmp;
      $.ajax({
          url: 'url',
          type: "POST",
          dataType: "json",

          success: function (data) {
            tmp=data;
          }
     });

     return tmp;
}

因为AJAX是异步的,并且此代码返回 - " undefined"。

当AJAX异步参数设置为 false

var tmp=$.ajax({...});

有可能做到这一点。

我也可以创建一些全局变量并像这样写:

function setMyVariable(){
        $.ajax({
          ...
          success: function (data) {
            myGlobalVariable=data;
          }
        });
}

问题是 - 在这种情况下使用全局变量是一种好习惯吗?
或者这是完全错误的,我需要搜索别的东西

1 个答案:

答案 0 :(得分:0)

最佳做法是从$.ajax返回承诺:

function func(){
      var tmp;
      return $.ajax({
          url: 'url',
          type: "POST",
          dataType: "json",
     });
}

然后你可以function().done(function(result) { ... } );