首页 > 代码库 > ajax 纯javascript

ajax 纯javascript

function createXHR(){    if(typeof XMLHttpRequest != ‘undefined‘){        return new XMLHttpRequest();    }else if(typeof ActiveXObject != ‘undefined‘){        var version = [                ‘MSXML2.XMLHttp.6.0‘,                ‘MSXML2.XMLHttp.3.0‘,                ‘MSXML2.XMLHttp‘,        ];        for(var i=0; i<version.length; i++){            try{                return new ActiveXObject(version[i]);            }catch(e){            }        }    }else{        throw new Error(‘您的系统或浏览器不支持XHR对象!‘);    }}//名值对转换字符串function params(data){    var arr=[];    for(var i in data){        arr.push(encodeURIComponent(i) + ‘=‘ + encodeURIComponent(data[i]));    }    return arr.join(‘&‘);}//封装Ajaxfunction ajax(obj){    var xhr = new createXHR();    obj.url = obj.url + ‘?rand=‘+ Math.random();    obj.data = params(obj.data);    if(obj.method == ‘get‘)obj.url += obj.url.indexOf(‘?‘) == -1 ? ‘?‘ +obj.data : ‘&‘ + obj.data ;    if(obj.async === true){        xhr.onreadystatechange=function(){            if(xhr.readyState == 4){                callback();            }        }    }    xhr.open(obj.method, obj.url, obj.async);    if(obj.method === ‘post‘){        xhr.setRequestHeader(‘Content-Type‘,‘application/x-www-form-urlencoded‘);        xhr.send(obj.data);    }else{        xhr.send(null);    }    if(obj.async === false){        callback();    }    function callback(){        if(xhr.status == 200){            obj.success(xhr.responseText);        }else{            console.log("获取数据错误!错误代号:"+ xhr.status +"错误信息:"+ xhr.statusText);        }    }}//调用AjaxaddEvent(document, ‘click‘, function(){    ajax({        method:‘get‘,        url:‘demo.php‘,        data:{            ‘name‘:‘L&ee‘,            ‘age‘:100        },        success:function(text){            console.log(text);        },        async:true    });})

 

ajax 纯javascript