今天发现$.get的回调函数无法赋值 debug发现在,回调函数还未执行时赋值操作已完成考虑到可能是异步操作。
在网上查找资料发现:Jquery封装好的$.post $.get发得请求都为“异步”请求,所以发出请求后还没等一般处理程序处理返回结果,就执行了为变量赋值,因此取到的值总为undefined。
解决方法:
function testAsync() {
var result;
$.ajax({ url: "",
async: false,//改为同步方式
type: "POST",
data: { },
success: function (data) {result = data; } });
return result;
}
或者
$.ajaxSettings.async = false; //关闭异步
$.post(.....)
$.ajaxSettings.async = true//打开异步