对ajax的js 封装

前端之家收集整理的这篇文章主要介绍了对ajax的js 封装前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
function ajaxSubmit(options) {
	options.async = options.async||true;
    if (!(options.url)) {
        alert("您没有设置提交的地址!");
        return;
    }
    var vAjaxFlag="1";
    if (options.updateId) {
    	vAjaxFlag="2";
    }
    var vUrl = options.url;
    var vParam;
    if (options.form) {
        vParam = $("#" + options.form).serialize();
    }
    if (options.params && !($.isEmptyObject(options.params))) {
        if (vParam && vParam.length) {
            vParam = vParam + "&" + $.param(options.params);
        } else {
            vParam = $.param(options.params);
        }
    }
    if (!(vParam)) {
        vParam = "rand=" + Math.random();
    }

    if (options.onBefore) {
        options.onBefore();
    }

    if (options.maskId) {
        var vMaskLabel = "正在执行操作,请稍候.....!";
        if (options.maskLabel) {
            vMaskLabel = options.maskLabel;
        }
        $("#" + options.maskId).mask(vMaskLabel);
    }
    
    $.ajax({
        type : 'POST',url : vUrl,data : vParam,beforeSend:function(XHR){XHR.setRequestHeader("HEcaAjax",vAjaxFlag);},success : function(data,textStatus) {
            if (options.maskId) {
                $("#" + options.maskId).unmask();
            }
            if (options.updateId) {
                $("#" + options.updateId).html(data);
            }
            if (options.onSuccess) {
                options.onSuccess(data,textStatus);
            }
        },error : function(res,textStatus,errorThrown) {
        	if (options.maskId) {
                $("#" + options.maskId).unmask();
            }           
            if (options.onError) {            	
                options.onError(res,errorThrown);
            }else if(res.status == 462){            	
    		if (options.maskId) {
    			$("#" + options.maskId).unmask();
    		}
    			
            }
        }
    });

    if (options.onAfter) {
        options.onAfter();
    }
}
前端以对象的方式调用。无须关注具体现实。

猜你在找的Ajax相关文章