2015-08-08 32 views
0
// 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数据。所以数据就在那里。 我只是不知道如何在调用函数后使用它。

+0

你不能这样做的。 AJAX是异步的,所以它不会马上返回任何东西。你需要一个回调函数或类似的东西。即使它能够工作,obj也只会是'success'函数中的局部变量,而不是您的点击处理函数。 – putvande

回答

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"); 
}); 
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"); 
}); 
0

由于$.ajax方法返回一个承诺,你可以做到以下几点:

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); 
     }); 
}); 
相关问题