封装复杂的ajax请求
封装复杂的 ajax 请求
ajax 传参为对象的格式,方便之后进行数据处理
注意数据格式的处理
get 和 post 的处理方式不同,参数也不同
function ajax(obj){
    if(window.XMLHttpRequest{
        var xhr = new XMLHttpRequest();
    }else{
        var xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    // 数据的形式通常是key1=val1&key2=val2
    // 但是实际在开发的时候数据的通常表示形式是{key1:val1,key2:val2}
    var str = '';
    for(var i in obj.data){
        str += i + '=' + obj.data[i] + '&';
    }
    str = str.replace(/&$/,'');
    if(obj.type.toLowerCase() == "get"){
        xhr.open("GET",obj.url+"?"+str,true);
        xhr.send();
    }
    if(obj.type.toLowerCase() == "post"){
        xhr.open("post",obj.url,true);
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhr.send(str);
    }
    xhr.onreadystatechane = function(){
        if(xhr.readyState == 4){
            if(xhr.status == 200){
                var data = xhr.responseText;
                obj.fn(data);
            }
        }
    }
}

发表评论 (审核通过后显示评论):