js 常用工具方法汇总

此贴记录所有我自己封装的一些项目中常用的工具方法,欢迎各种指导+补充。互相学习啦!
Ajax请求:

xAjax.request = function(options){
    if(!options || typeof options != "object"){
        return false;
    }
    //请求类型,不传,默认get
    var type = options.type || "get";
    //请求地址
    var url = options.url || location.pathname;
    //异步or同步
    var async = (options.async === false) ?false:true;
    //请求内容的格式
    var contentType = options.contentType || "type/html";
    //数据
    var data = options.data || {};
    var dataStr = "";
    for(var key in data){
        dataStr += key+"="+data[key]+"&";
    }
    //将最后一个&截取掉
    dataStr = dataStr && dataStr.slice(0,-1);

    //ajax
    var xhr = new XMLHttpRequest();
    xhr.open(type,(type=="get"?url+"?"+dataStr:url),async);
    //请求头
    if(type == 'post'){
        if(contentType == "json"){
            xhr.setRequestHeader('Content-Type','application/json');
        }else{
            xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        }
    }
    xhr.setRequestHeader('Client-Type','I');
    //请求主体
    xhr.send(type=="get"?null:contentType=="json"?JSON.stringify(data):dataStr);
    //监听响应状态的改变
    xhr.onreadystatechange = function(){
        var result = "";
        var contentType = xhr.getResponseheader('Content-Type');
        if(xhr.readyState ==4 && (xhr.status == 200 || xhr.status == 201)){
            //如果服务器返回的是xml
            if(contentType.indexOf("xml")>-1){
                result = xhr.responseXML;
            }
            //如果服务器返回的是json
            else if(contentType.indexOf("json")>-1){
                result = JSON.parse(xhr.responseText);
            }else{
                result = xhr.responseText;
            }
            //成功回调
            options.success && options.success(result);
        }
        //请求不成功,也需要响应完成才作为一个错误的请求
        else if(xhr.readyState == 4){
            //如果服务器返回的是xml
            if(contentType.indexOf("xml")>-1){
                result = xhr.responseXML;
            }
            //如果服务器返回的是json
            else if(contentType.indexOf("json")>-1){
                result = JSON.parse(xhr.responseText);
            }else{
                result = xhr.responseText;
            }
            //error回调
            options.error&& options.error(result);
            if(xhr.status == 401 || (xhr.status == 403){
                options.authorize && options.authorize();
            }
        }
    }
}

xAjax.post = function(options){
    options.type = "post";
    xAjax.request(options);
}
xAjax.get = function(options){
    options.type = "get";
    xAjax.request(options);
}

调用的话就这样写;我觉得还挺方便的

xAjax.post({
    url:"xxxx",
    data:{"name":xj},
    success:function(result){
        //请求成功的操作
    },
    error:function(error){
        //请求失败的操作
    }
});

判断是否为空:

xCheckEmpty = function(obj){
    if(obj == null || obj == undefined || obj == ""){
        return true;
    }
    return false;
}
xCheckNotEmpty = function(obj){
    if(xCheckEmpty(obj)){
        return false;
    }
    return true;
}

还没有整理完,待补充。

你可能感兴趣的:(js 常用工具方法汇总)