ajax 原生 xhr 对象

事件
    onreadystatechange
    
    xhr.open("get","example.php", false);
    xhr.send(null)
    send()方法接收一个参数,即要作为请求主体发送的数据。调用send()方法后,请求被分派到服务器
    如果是GET方法,send()方法无参数,或参数为null;如果是POST方法,send()方法的参数为要发送的数据


    响应之前
    readyState
    0(UNSENT):未初始化。尚未调用open()方法
    1(OPENED):启动。已经调用open()方法,但尚未调用send()方法
    2(HEADERS_RECEIVED):发送。己经调用send()方法,且接收到头信息

    3(LOADING):接收。已经接收到部分响应主体信息
    4(DONE):完成。已经接收到全部响应数据,而且已经可以在客户端使用了


    responseText: 作为响应主体被返回的文本(文本形式)
    status: HTTP状态码(数字形式)
    200 ok 304 不ok
    404,500

 

function myAjax(method,url,data,fn){
    var xhr;

    // console.log(XMLHttpRequest);

    if(window.XMLHttpRequest){
        xhr = new XMLHttpRequest();
    }else{
        xhr = new ActiveXObject('Microsoft.XMLHTTP');
    }

    xhr.onreadystatechange = function(){
        if(xhr.readyState =='4'){
            if(xhr.status == '200'){
                // alert(xhr.responseText);
                fn(xhr.responseText);
            }    
                    
        }

    }
     //发送请求
    xhr.open(method,url,true);
    (method == 'get')?xhr.send();xhr.send(data):
    
    // console.log(xhr);

}

 

posted @ 2017-09-19 17:50  alan-alan  阅读(132)  评论(0编辑  收藏  举报