青烟

小燕归园花正语,水清不问旧消息。

设置 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;
   }
 },
posted @ 2021-08-20 19:41  今后  阅读(141)  评论(0编辑  收藏  举报