1 // 封装的 ajax网络请求函数 2 // obj 是一个对象 3 function AJAX(obj){ 4 // 1、创建 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 }
时间: 2024-10-03 13:27:50