Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用AJAX将数据返回到变量中_Jquery_Ajax_Json - Fatal编程技术网

Jquery 使用AJAX将数据返回到变量中

Jquery 使用AJAX将数据返回到变量中,jquery,ajax,json,Jquery,Ajax,Json,我有一个简单的AJAX调用,它查询twitterapi以返回URL被tweet发送的次数。我正试图将这个返回值与来自其他社交网络的类似AJAXs呼叫一起设置。然后我想把所有的值加在一起,得到一个“共享”总数,它将在HTML页面中使用 下面是我用代码尝试的内容: var twitter = $.ajax({ dataType: 'jsonp', url: 'http://cdn.api.twitter.com/1/urls/count.json',

我有一个简单的AJAX调用,它查询twitterapi以返回URL被tweet发送的次数。我正试图将这个返回值与来自其他社交网络的类似AJAXs呼叫一起设置。然后我想把所有的值加在一起,得到一个“共享”总数,它将在HTML页面中使用

下面是我用代码尝试的内容:

var twitter = $.ajax({
        dataType: 'jsonp',
        url: 'http://cdn.api.twitter.com/1/urls/count.json',
        data: { url: shareUrl},
        async: 'false',
        success: function(data) {
            return data.count;
        }
    });
我的目标是运行一个简单的数学函数,如下所示:

var total = twitter + facebook;
然后将总数输出到DOM元素


当我运行console.log(twitter)时;我得到的是一个对象readystate,但是如果我在success函数中运行console.log,我得到的是正确的数字。因为这将是一个非常轻松的页面集'async:false',希望它将返回值,然后转到下一个函数。但不管我尝试了什么,我都无法从AJAX函数中获得价值。我哪里出错了,或者我需要修改什么?

这是一个在jQuery中使用延迟的完美例子。通过延迟,您可以创建回调,这些回调将在一系列异步操作完成后调用(而不是像通常的回调那样只调用一次)

然后,您可以计算来自“内部”回调的总结果

编辑:现在更优雅没有全球性的

function Twitter() {
   var dfd = $.Deferred();
   $.ajax({
      ...
      success: function(data) {
         dfd.resolve(data.count);
      }
   });
   return dfd.promise();
}

function Facebook() {
   var dfd = $.Deferred();
   $.ajax({
      ...
      success: function(data) {
         dfd.resolve(data.count);
      }
   });
   return dfd.promise();
}

$.when(Twitter(), Facebook()).then(function(twitter, facebook) {
   alert('The total is ' + (twitter+facebook));
}

我对成功的理解是一次回调,并且在你所问问题的范围之外被激发。成功如何:函数(数据){$('#twitter').html(数据)}@DarenSchwenke:不需要全局变量。但是,是的,在包含调用的范围内。