封装ajax

本文介绍了一个封装好的Ajax方法,该方法被放置在common.js文件中,支持多种请求类型及数据处理方式。通过调整参数,可以灵活地应用于不同的场景,如JSON、表单提交等。

1.将封装好的ajax()方法放在common.js中。

function ajax(obj) {
    var type = obj.type || 'post';//请求类型
     var dataType = "json";//接收数据类型
    var async = obj.async || false;//异步请求
    var cache = obj.cache || false;//浏览器历史缓存
    var contentType = false;
    var processData = false;
    // 成功失败方法
    var success = obj.success;
    var error = obj.error;
    // 访问地址
    var url = obj.url;
    // 种类
    var kind = obj.kind;
    // 参数
    var param1 = obj.param1 || null;
    var param2 = obj.param2 || null;
    var param3 = obj.param3 || null;
    // 传入参数
    var data = obj.data || null;
    if(kind == "1") {
        data = JSON.stringify(data)
        contentType = "application/json";
    }
    var success = success || function (result) {
        console.log(result);
        alert(result.message);
    };
    var error = error || function (result) {
            alert(result+"失败")
            console.log('XMLHttpRequest:');
            console.log(XMLHttpRequest);
            alert('网络异常!尝试刷新网页解决问题')
        };
    if(kind == "3") {
        $.ajax({
            'url': httpurl+url,
            'type': type,
            'cache': cache,
            'async': async,
            'traditional': true,
            'data': data,
            'success': success,
            'error': error
        });
    } else if(kind == '4'){
        $.ajax({
            'url': httpurl+url,
            'type': type,
            'dataType': dataType,
            'async': async,
            'contentType': contentType,
            'data' : data,
            'success': success,
            'error': error
        });
    } else if(data == 'null') {
        $.ajax({
            'url': httpurl+url,
            'type': type,
            'cache': cache,
            'dataType': dataType,
            'async': async,
            'contentType': contentType,
            'processData':processData,
            'success':  function(ret){
                if(param1 == null && param2 == null && param3 == null) {
                    success(ret);
                }else if(param1 != null && param2 == null && param3 == null) {
                    success(ret,param1);
                }else if(param1 != null && param2 != null && param3 == null) {
                    success(ret,param1,param2);
                }else if(param1 != null && param2 != null && param3 != null) {
                    success(ret,param1,param2,param3);
                }
            },
            'error': error
        });
    } else {
        $.ajax({
            'url': httpurl+url,
            'type': type,
            'cache': cache,
            'dataType': dataType,
            'async': async,
            'contentType': contentType,
            'processData':processData,
            'data': data,
            'success': function(ret){
                if(param1 == null && param2 == null && param3 == null) {
                    success(ret);
                }else if(param1 != null && param2 == null && param3 == null) {
                    success(ret,param1);
                }else if(param1 != null && param2 != null && param3 == null) {
                    success(ret,param1,param2);
                }else if(param1 != null && param2 != null && param3 != null) {
                    success(ret,param1,param2,param3);
                }
            },
            'error': error
        });
    }
}

// ajax提交(post方式提交)
function post(obj) {
    ajax(obj);
}

2.调用ajax

var obj = {
    "url": "/haha",
    "data": paramObj,// 无参不用写data属性
    "cache": false,
    "alone": false,
    "success": hahaSuccess,
    "kind": "1", // 1 json, 2 form, 3 数组, 4 输入数据格式不转换成json
};
post(obj);

 

转载于:https://www.cnblogs.com/nananana/p/8492325.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值