如何使用来自被调用函数的返回数据?

时间:2015-08-08 12:06:25

标签: javascript jquery

  // AjaxHandler
  function AjaxHandler(url, dataContent){
    $.ajax({
        url: url,
        type: 'POST',
        dataType: 'json',
        data: dataContent,
        async: true,
        cache: false,
        success: function(obj){
          console.log(obj);
          return obj;
        }
    });
  }

    $("#button").click(function(){
        AjaxHandler( "http://xxxxxx/yyyyyy.api", "some data" );
        alert(obj);
     });

如果我可以从被调用函数“AjaxHandler”获取对象数据。 我如何使用这个对象数据?我尝试提醒obj但显示未定义。

我可以在函数AjaxHandler的控制台中打印obj数据。所以数据就在那里。 我只是不知道在调用函数后如何使用它。

3 个答案:

答案 0 :(得分:0)

由于AJAX是异步的,因此您无法“返回”变量。但是,您可以将其发送到下一个处理数据的函数。

function AjaxHandler(url, dataContent){
    $.ajax({
        url: url,
        type: 'POST',
        dataType: 'json',
        data: dataContent,
        async: true,
        cache: false,
        success: function(obj){
            console.log(obj);
            processAjax( obj );
        }
     });
}

function processAjax( obj ) {
    alert(obj);
}

$("#button").click(function(){
    AjaxHandler( "http://xxxxxx/yyyyyy.api", "some data" );
});

答案 1 :(得分:0)

尝试在ajax中取得成功:

// AjaxHandler
  function AjaxHandler(url, dataContent){
    $.ajax({
        url: url,
        type: 'POST',
        dataType: 'json',
        data: dataContent,
        async: true,
        cache: false,
        success: function(obj){
          console.log(obj);
          return obj;
        },
    success(function() {
    (function() {
    alert( "success" );

      })
  })
        });
      }
$("#button").click(function(){
    AjaxHandler( "http://xxxxxx/yyyyyy.api", "some data" );   
 });

答案 2 :(得分:0)

$.ajax方法返回一个promise时,您可以执行以下操作:

function AjaxHandler(url, dataContent){
    return $.ajax({
        url: url,
        type: 'POST',
        dataType: 'json',
        data: dataContent,
        async: true,
        cache: false,
        success: function(obj){
            return obj;
        }
     });
}

$("#button").click(function(){
    AjaxHandler( "http://xxxxxx/yyyyyy.api", "some data" )
      .then(function (obj) {
        console.log(obj);
      });
});