封装jQuery ajax

学习笔记 2017/10/16 jQuery

        以为经常用到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

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。