10-jQuery和ajax-3-ajax封裝

第十節:ajax封裝

ajax請求後臺數據
var btn = document.getElementsByTagName("input")[0];
btn.onclick = function(){

ajax({//json格式
    type:"post",
    url:"post.php",
    data:"username=poetries&pwd=123456",
    asyn:true,
    success:function(data){
        document.write(data);
    }
});

}

封裝ajax

function ajax(aJson){
var ajx = null;
var type = aJson.type || “get”;
var asyn = aJson.asyn || true;
var url = aJson.url; // url 接收 傳輸位置
var success = aJson.success;// success 接收 傳輸完成後的回調函數
var data = aJson.data || ”;// data 接收需要附帶傳輸的數據

if(window.XMLHttpRequest){//兼容處理
    ajx = new XMLHttpRequest();//一般瀏覽器
}else
{
    ajx = new ActiveXObject("Microsoft.XMLHTTP");//IE6+
}
if (type == "get" && data)
{
    url +="/?"+data+"&"+Math.random();
}

//初始化ajax請求
ajx.open( type , url , asyn );
//規定傳輸數據的格式
ajx.setRequestHeader('content-type','application/x-www-form-urlencoded');
//發送ajax請求(包括post數據的傳輸)
type == "get" ?ajx.send():ajx.send(aJson.data);

//處理請求
ajx.onreadystatechange = function(aJson){

if(ajx.readState == 4){

    if (ajx.status == 200 && ajx.status<300)//200是HTTP 請求成功的狀態碼
    {
        //請求成功處理數據
        success && success(ajx.responseText);
    }else{
        alert("請求出錯"+ajx.status);

    }
}

};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章