js ajax get post

原创 韩秀利 随笔 javascript 61阅读 2018-04-17 14:24:21 举报

function json2url(json){
json.t=Math.random();
var arr=[];
for(var name in json){
arr.push(name+'='+json[name]);
}
return arr.join('&');
}
function ajax(json){
/初始值/
var json=json || {};
if(!json.url)return;
json.data=json.data || {};
json.timeout=json.timeout || 3000;
json.type=json.type || 'get';

/*1、准备ajax对象*/
if(window.XMLHttpRequest){
    var oAjax=new XMLHttpRequest();
}else{
    var oAjax=new ActiveXObject('Microsoft.XMLHTTP');
}

/*2、建立连接  3、发送请求*/
switch(json.type.toLowerCase()){
    case 'get':
    oAjax.open('GET', json.url+'?'+json2url(json.data), true);
    oAjax.send();
    break;
    case 'post':
    oAjax.open('POST', json.url, true);
    oAjax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    oAjax.send(json2url(json.data));
    break;
}
/*加载中*/
json.fnLoading && json.fnLoading();  
/*4、接收数据*/
oAjax.onreadystatechange=function(){
    if(oAjax.readyState==4){
        /*加载完成*/
        json.complete && json.complete();  
        if((oAjax.status>=200 && oAjax.status<300) || oAjax.status==304){
            json.success && json.success(oAjax.responseText);
        }else{
            json.error && json.error(oAjax.status);
        }
        clearTimeout(timer);
    }
};
/*加载时间*/
var timer=setTimeout(function(){
    alert('网络超时');
    oAjax.onreadystatechange=null;
}, json.timeout);

}

var ajaxJsoon={
url:'post.php',
timeout:3000,
data:{
a:12,
b:5
},
type:'post',
fnLoading:function(){
console.log('加载中...');
},
complete:function(){
console.log('加载完成');
},
success:function(res){
console.log(res);
},
error:function(res){
console.log(res);
}
};
ajax(ajaxJsoon);

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复