window.onload=function(){ //get请求======================================================================================== function ajaxGet(url,success,fail){ var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("micsoft XMLHttp") xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.status == 200){ success(JSON.parse(xhr.responseText)) }else{ fail(xhr.status) } } } xhr.open("get",url,true); xhr.send() } //post请求======================================================================================= function ajaxPost(url,data,success,fail){ var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("micsoft XMLHttp") xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.status == 200){ success(JSON.parse(xhr.responseText)) }else{ fail(xhr.status) } } } xhr.open("post",url,true); xhr.send(data) } //普通调用 ajaxPost("https://www.apiopen.top/femaleNameApi",{"page":1},function(res){ console.log(res) },function(res){ console.log(res) }) //-------------------------------------------------------------------------分割线----------------------------------------------------------------------------- //面向对象post方法及调用方式================================================================================== function Post(obj){ var options = obj var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("micsoft XMLHttp") xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if(xhr.status == 200){ options.success(JSON.parse(xhr.responseText)) }else{ options.fail(xhr.status) } } } xhr.open(options.method,options.url,options.async); xhr.send(options.data) } //调用 Post({ method:"post", url:"https://www.apiopen.top/femaleNameApi", data:{"page":1}, async:true, success:function(res){ console.log(res) },fail:function(res){ console.log(res) } }) }
function ajax(options){ var xhr = null; var params = formsParams(options.data); //创建对象 if(window.XMLHttpRequest){ xhr = new XMLHttpRequest() } else { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } // 连接 if(options.type == "GET"){ xhr.open(options.type,options.url + "?"+ params,options.async); xhr.send(null) } else if(options.type == "POST"){ xhr.open(options.type,options.url,options.async); xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xhr.send(params); } xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ options.success(xhr.responseText); } } function formsParams(data){ var arr = []; for(var prop in data){ arr.push(prop + "=" + data[prop]); } return arr.join("&"); } } //调用 ajax({ url : "/apis/index.js", // url---->地址 type : "GET", // type ---> 请求方式 async : true, // async----> 同步:false,异步:true success : function(data){ //返回接受信息 console.log(JSON.parse(data)); } })