今天在写jquery的ajax方法的时候想获取回调函数中的返回值,但是怎么也获取不到,因为是jquery的方法中嵌套jquery的方法,导致作用域也不好使变量传递数据。
比如像如下的代码:
1 | $( "talbe>td" ).each( function (){ |
2 | ......... |
3 | $.get( 'xxxx' , function (data){ |
4 | return xxxxx; |
5 | }); |
6 | ......... |
7 | }); |
在这种情况下想获取$.get方法中回调函数的return的话就很困难,其实我们可以换种方法来解决这个问题,为何不把data的数据提交到回调函数以外的地方进行处理,这样就会避免内层的数据无法向外层传递。
查看jquery手册发现有一种比较好的解决方案:
var
str = $.ajax({
type: "POST",
url: "/login/updateEmail/",
async:false,
cache:false,
data: "email="+email+"&uid="+uid,
success: function(){
signUpAlert.successAlert();
}
}).responseText;
这样就可以通过ajax来获取返回值,注意这里使用了async:false jQuery中的解释是:
默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。