日期:2014-05-16  浏览次数:20680 次

jquery中ajax异步时序问题

今天写代码中要保存ajax请求的数据,代码如下:

var changedid = null;

$.get('user/getdepartment','',function(data){changedid=data;},'json');

alert(changedid);//null

结果发现changedid没有保存data,javascript的作用域也没有错啊?通过请教别人知道了问题的原因:异步调用时序问题。

于是换成$.ajax:

?

var changedid = null;

$.ajax({

url: 'user/getdepartment',

type: 'get',

async: false,

dataType: 'json',

success: function(data){

changedid = data;

}

});

?

async ?Boolean

(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

?