美文网首页
ajxa的封装

ajxa的封装

作者: 飘飞而过学 | 来源:发表于2016-12-15 23:25 被阅读0次

    function json2url(json){

    json.t = Math.random();

    var arr = [];

    for(var name in json){

    arr.push(name+'='+json[name]);

    }

    return arr.join('&');

    }

    //url,data,type,time,fnSucc,fnFail

    function ajax(json){

    var json = json || {};

    if(!json.url){

    alert('没有地址!');

    return;

    }

    json.data = json.data || {};

    json.time = json.time || 1000;

    json.type = json.type || 'GET';

    //1.ajax对象  request:请求  response:响应

    if(window.XMLHttpRequest){

    var oAjax = new XMLHttpRequest();

    }

    else{

    var oAjax = new ActiveXObject('Microsoft.XMLHTTP');

    }

    //2.建立连接

    switch (json.type.toLowerCase()){

    case 'post':

    oAjax.open('POST',json.url,true);

    oAjax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');//设置一个请求头

    oAjax.send(json2url(json.data));

    break;

    case 'get':

    oAjax.open('GET',json.url+'?'+json2url(json.data),true);

    //3.打开连接

    oAjax.send();

    break;

    }

    //4.接收

    var timer = null;

    oAjax.onreadystatechange = function(){

    if(oAjax.readyState == 4){

    //完成

    if(oAjax.status >= 200 && oAjax.status<300 || oAjax.status == 304){

    //成功

    json.success && json.success(oAjax.responseText);

    clearTimeout(timer);

    }

    else{

    json.error && json.error(oAjax.status);

    }

    }

    };

    timer = setTimeout(function(){

    alert('你的网速太慢了,别等了!!');

    },json.time);

    }

    相关文章

      网友评论

          本文标题:ajxa的封装

          本文链接:https://www.haomeiwen.com/subject/suagmttx.html