如何获取jQuery的AJAX方法返回的值?

为何获取ajax返回值的时候,总是undefined?获取ajax的返回值有两个关键点:

1、改“异步”为“同步”

ajax默认是异步调用,因此得到的返回值是空值。请加上async: false,或将async: true改成false。

 

2、定义一个全局变量

假设定义一个全局变量:var result = " ";该全局变量用来保存返回值,否则得到的是undefined。

 

综合以上,完整的ajax方法大致如下:

  1. //获取数据 
  2. function getJSONData(APIUrl,uid){ 
  3.     var result = ""; 
  4.     $.ajax({ 
  5.         url: APIUrl+'/api/'+uid, 
  6.         type: 'GET'
  7.         dataType: "text"
  8.         data: null
  9.         cache: false
  10.         async: false,//同步  
  11.         success: function(data){ 
  12.             result = $.parseJSON(data); 
  13.         }, 
  14.         error: function(){ 
  15.             result = '获取数据失败!';  
  16.         } 
  17.     }); 
  18.  
  19.     return result; 

 

说明:把返回的data数据提交到回调函数以外的地方进行处理,这样可以避免内层的数据无法向外层传递!

 

相关经验

导读书签
书签初始化中…