简单的封装一个ajax

1、把json转换成string

function json2url(json){
    var arr = [];
    for(var key in json){
        arr.push(key+'='+json[key]);
    }
    return arr.join('&');
}

2、封装一个ajax:

(1)封装个函数:
function ajax(options){
    options = options||{};
    if(!options.url)return;
    options.data = options.data||{};
    options.data.t = Math.random();
    options.type = options.type||'get';
    var data = json2url(options.data);
(2)创建一个ajax对象
    if(window.XMLHttpRequest){
        var oAjax = new XMLHttpRequest();
    }else{
        var oAjax = new ActiveXObject('Microsoft.XMLHTTP');
    }
(3)用switch来进行判断options.type类型,并打开链接,发送请求。
    switch(options.type.toLowerCase()){
        case 'get':
            oAjax.open('GET',options.url+'?'+data,true);
            oAjax.send();
            break;
        case 'post':
            oAjax.open('POST',options.url,true);
            oAjax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            oAjax.send(data);
            break;
        default:
            oAjax.open('GET',options.url+'?'+data,true);
            oAjax.send();
            break;
    }
(4)接收响应
    oAjax.onreadystatechange = function(){
        if(oAjax.readyState==4){
            if(oAjax.status>=200&&oAjax.status<300||oAjax.status==304){
                options.success&&options.success(oAjax.responseText);
            }else{
                options.error&&options.error(oAjax.status);
            }
        }
    };

}
(5)写入的方式是:
ajax({
    url:'',
    data:{},
    type:'',
    success:function(res){
        alert(res);
    },
    error:function(err){
        alert('失败:'+err)
    }
});

你可能感兴趣的:(简单的封装一个ajax)