ajax方法封装

本文介绍了一个用于处理公共请求的函数,该函数通过Ajax调用后端API,支持不同类型的请求,如GET、POST等,并提供了错误处理机制。文章详细解释了如何使用此函数进行身份验证、缓存控制、数据格式化及错误状态码的处理。
//公共请求函数
function TrackAjaxString(url, data, type, successCallBack, isCache, beforeSendCallBack, completeCallBack) {
    var token = CookieUtil.getCookie(COOKIE_TOKEN_NAME);
    if (isEmpty(token)) {
        window.top.location = VIRTUAL_PATH + '/login';
        return;
    }
    if (isEmpty(isCache)) isCache = false;
    var headers = {};
    headers.Authorization = token;

    layui.use('layer', function () {
        var $ = layui.jquery
            , layer = layui.layer;
        var layerIndex;
        $.ajax({
            type: type,
            cache: isCache,
            contentType: "application/json",
            dataType: "text",
            headers: headers,
            url: WEB_API_ADRESS + url,
            data: JSON.stringify(data),
            traditional: true,
            beforeSend: function () {
                if (beforeSendCallBack) {
                    beforeSendCallBack();
                } else {
                    layerIndex = layerLoad();
                }
            },
            success: function (result) {
                var data = JSON.parse(result);
                if (data.RetCode == 0) {
                    successCallBack(data.Result, data);
                } else {
                    layerMsg(data.Msg, 5);
                }
            },
            complete: function () {
                if (completeCallBack) {
                    completeCallBack();
                } else {
                    top.layer.close(layerIndex);
                }
            },
            error: function (xmlHttpRequest, textStatus, errorThrown) {
                switch (xmlHttpRequest.status) {
                    case 400:
                        layerMsg(JSON.parse(xmlHttpRequest.responseText).Msg, 2);
                        break;
                    case 401:
                        layer.alert('登录超时,请重新登录!', {
                                skin: 'layui-layer-lan'
                                , closeBtn: 1
                                , anim: 4 //动画类型
                                , icon: 7
                            }
                            , function (index) {
                                layer.close(index);
                                window.top.location = "/login";
                            }
                        );
                        break;
                    case 403:
                        layerMsg('权限不足!', 4);
                        break;
                    case 404:
                        layerMsg('要操作的条目不存在!', 5);
                        break;
                    default:
                        layerMsg('网络错误!', 2);
                        break;
                }
            }
        });
    });
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值