设置 ajax 同步获取数据
问题
在处理DataTable的render进行列表渲染的时候发现通过ajax发送请求,返回的值并不正确。
{"data":"id","render":function ( data, type, full, meta ) {
var skill=""
$.ajax({
type: 'POST',
url: host+"userskills/userskill",
data: {id:id},
success: function (response){
if(response.code==0){
skill=response.aaData;
}else{
showNotify('top', 'center', "danger","结果","获取用户信息失败,请联系管理员。");
}
}
});
return skill;
}
},
这里返回的skill内容仍然为空,因为在ajax返回之前就已经执行了return操作。
解决方法
将ajax设置为同步操作。
{"data":"id","render":function ( data, type, full, meta ) {
var skill=""
$.ajaxSettings.async = false
$.ajax({
type: 'POST',
url: host+"userskills/userskill",
data: {id:id},
success: function (response){
if(response.code==0){
skill=response.aaData;
}else{
showNotify('top', 'center', "danger","结果","获取用户信息失败,请联系管理员。");
}
}
});
return skill;
}
},