以为经常用到ajax来获取数据,如果每个页面都写一遍,代码重复太多而且繁琐,所以试着封装一下AJAX方法。也许第一想法是把ajax放在function中,然后在调用。如果直接这样写你就上当了,会出现获取不到返回值得情况,原因是ajax不能事实返回返回值。
那么问题来了,怎么解决这个问题!!Deferred.then()就可以解决多个异步操作之间有依赖的问题,下面是本人封装的一段代码:
/** * 封装 AJAX * @param {Object} url * @param {Object} param * @param {Object} type */ function handle_ajax(url, param, type) { return $.ajax({ url: url, data: param || {}, dataType:\'json\', type: type || \'GET\' }); }
function ajax(url, param, type) { return handle_ajax(url, param, type).then(function(resp) { return resp; }, function(err) { console.log(err.status); }); }
调用方法:
ajax(\'www.stayed.cn/getlist\').done(function(resp) { // 当result为true的回调 }).fail(function(err) { // 当result为false的回调 });
本文地址:https://www.stayed.cn/item/40
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我