程序ajax请求公共组件-- app-jquery-http.js

$.HTTP =
{
    getUrlParam : function (name)
    {
        var reg = new RegExp ("(^|&)" + name + "=([^&]*)(&|$)");
        var r = window.location.search.substr (1).match (reg);
        if (r != null)
            return unescape (r[2]);
        return null;
    },
    /**
     * 
     * @param opt
     *            opt.url,postdata, success, failure, error
     */
    obj : function (opt)
    {
        var formData;

        if (opt.postType) {
            switch (opt.postType) {
            case "multipart":
                formData = new FormData($(opt.formId)[0]);
                break;
            case "form":
                formData =  $.param(opt.ajaxData);
                break;
            case "json":
                formData = JSON.stringify(opt.ajaxData);
                break;
            default:
                return;
            }
        } else {
            formData = opt.ajaxData;
        }
        
        var sopt =
        {
            type : opt.type == undefined ? "post" : opt.type,
            async : false,
            url : opt.url,
            data : formData,
            dataType : "json",
            success : function (json)
            {
                if (json.stat == 1)
                {
                    if (opt.success != undefined)
                        opt.success (json.data);
                }
                else
                {
                    if (opt.failure != undefined)
                        opt.failure (json);
                    else if (json.code != undefined)
                    {
                        $.HTTP.show_code_err (json);
                    }
                    else
                    {
                        console.log ("success不等于true   【url: " + opt.url + "】");
                        if (json.errorMessages != null && json.errorMessages.length > 0)
                        {
                            $.NOTIFY.showNotice ("错误", json.errorMessages[0]);
                        }
                    }
                    
                }
                
            },
            error : function (XMLHttpRequest, textStatus, errorThrown)
            {
                var info = "XMLHttpRequest:" + JSON.stringify (XMLHttpRequest) + " ;textStatus:" + textStatus
                        + "; errorThrown:" + JSON.stringify (errorThrown) + ";   【" + opt.url + "】";
                console.log (info);
                if (opt.error != undefined)
                    opt.error (XMLHttpRequest, textStatus, errorThrown);
                else
                {
                    $.NOTIFY.showError ("请求错误", "系统发生请求错误,请联系管理员解决。");
                }
            }
        };
        
        if (opt.postType) {
            switch (opt.postType) {
            case "multipart":
                sopt.async = false;
                sopt.cache = false;
                sopt.contentType = false;
                sopt.processData = false;
                break;
            case "form":
                sopt.contentType = 'application/x-www-form-urlencoded';
                break;
            case "json":
                sopt.contentType = 'application/json';
                sopt.dataType = "json";
                break;
            default:
                return;
            }
        }
        $.ajax (sopt);
    },
    list : function (opt)
    {
        var formData;

        if (opt.postType) {
            switch (opt.postType) {
            case "multipart":
                formData = new FormData($(opt.formId)[0]);
                break;
            case "form":
                formData =  $.param(opt.ajaxData);
                break;
            case "json":
                formData = JSON.stringify(opt.ajaxData);
                break;
            default:
                return;
            }
        } else {
            formData = opt.ajaxData;
        }
        
        var sopt =
        {
            type : opt.type == undefined ? "get" : opt.type,
            async : false,
            url : opt.url,
            data : opt.ajaxData,
            dataType : "json",
            success : function (json)
            {
                if (json.stat == 1)
                {
                    if (opt.success != undefined)
                        opt.success (json.list, json.pageInfo);
                }
                else
                {
                    if (opt.failure != undefined)
                        opt.failure (json);
                    else if (json.code != undefined)
                    {
                        $.HTTP.show_code_err (json);
                    }
                    else
                    {
                        console.log ("success不等于true   【url: " + opt.url + "】");
                        if (json.errorMessages != null && json.errorMessages.length > 0)
                        {
                            $.NOTIFY.showNotice ("错误", json.errorMessages[0]);
                        }
                    }
                }
                
            },
            error : function (XMLHttpRequest, textStatus, errorThrown)
            {
                var info = "XMLHttpRequest:" + JSON.stringify (XMLHttpRequest) + " ;textStatus:" + textStatus
                        + "; errorThrown:" + JSON.stringify (errorThrown) + ";   【" + opt.url + "】";
                console.log (info);
                if (opt.error != undefined)
                    opt.error (XMLHttpRequest, textStatus, errorThrown);
                else
                {
                    $.NOTIFY.showError ("请求错误", "系统发生请求错误,请联系管理员解决。");
                }
            }
        };
        
        if (opt.postType) {
            switch (opt.postType) {
            case "multipart":
                sopt.async = false;
                sopt.cache = false;
                sopt.contentType = false;
                sopt.processData = false;
                break;
            case "form":
                sopt.contentType = 'application/x-www-form-urlencoded';
                break;
            case "json":
                sopt.contentType = 'application/json';
                sopt.dataType = "json";
                break;
            default:
                return;
            }
        }
        
        $.ajax (sopt);
    },
    show_code_err : function (json)
    {
        if (json.code == 1403)
        {
            $.NOTIFY.showLogin ();
            return;
        }
        else if (json.errorMessages != undefined && json.errorMessages != null && json.errorMessages.length > 0)
        {
            $.NOTIFY.showNotice ("错误", json.errorMessages[0]);
        }
        
    }
}

 

posted @ 2016-11-04 09:38  Cryst-  阅读(921)  评论(0编辑  收藏  举报