用原生JS写PHP里的Ajax

 1 // 封装的 ajax网络请求函数  2 // obj 是一个对象  3 function AJAX(obj){  4  // 一、建立 ajax 对象  5  var ajaxObj = null;  6  if (window.XMLHttpRequest) {  7  ajaxObj = new XMLHttpRequest();  8  }else{  9  ajaxObj = new ActiveXObject("Microsoft.XMLHTTP");; 10  } 11 
12  // 设置请求的类型 13  obj.type = obj.type.toUpperCase() || "GET"; 14 
15  // 若是是get请求,而且须要传递参数,则须要给 url后面拼接参数 16  if (obj.type == "GET") { 17  var arr = []; // 定义数组,用于把对象存储到数据里面 18  for(var key in obj.data){ 19  arr.push(key+"="+obj.data[key]); 20  } 21         // 用&分隔数组,让其转化为相似:name=gxm&age=18的形式 22  var str = arr.join("&"); 23  obj.url = obj.url +"?"+str; 24  // 拨号 25  ajaxObj.open(obj.type,obj.url,true); 26  //2.1设置头文件 27  ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") 28 
29 
30         // 发送"name=123&dad=131" 31  ajaxObj.send(); 32  }else{ 33  var arr = []; // 定义数组,用于把对象存储到数据里面 34  for(var key in obj.data){ 35  arr.push(key+"="+obj.data[key]); 36  } 37         // 用&分隔数组,让其转化为相似:name=gxm&age=18的形式 38  var str = arr.join("&"); 39  ajaxObj.open(obj.type,obj.url,true); 40  ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 41  ajaxObj.send(str); 42  } 43 
44 
45  // 监听 46  // 47  ajaxObj.onreadystatechange = function(){ 48  if (ajaxObj.readyState == 4) { 49             if (ajaxObj.status >= 200 && ajaxObj.status < 300|| ajaxObj.status == 304) { 50  // 请求成功 51  console.log(ajaxObj.responseText) 52  // obj.success(ajaxObj.responseText); 53  }else{ 54  // 请求失败 55  obj.error(ajaxObj.status); 56  } 57 
58 
59  } 60  } 61 
62 
63 
64 
65 
66 }
相关文章
相关标签/搜索