第十節: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);
}
}
};