//ajax 的get post封装
function ajaxF( method , url , json, callback ){
var xhr = new XMLHttpRequest() || new ActiveXObject("Microsoft.XMLHTTP");
var str = "";
for( var key in json ){
str += "&" + key +"=" + json[key];
}
str = str.slice(1);
if( method == "get" ){
url = url + "?" + str;
xhr.open( "get" , url , true );
xhr.send();
}else{
xhr.open( "post" , url , true );
//设置请求头
xhr.setRequestHeader( "Content-Type","application/x-www-form-urlencoded" )
//post的请求数据要放在send里面
xhr.send( str )
}
xhr.onreadystatechange = function(){
if( xhr.readyState == 4 && xhr.status == 200 ){
//拿到服务器的结果后 要实现的功能是可变的
callback( xhr.responseText );//函数调用 传递实参
}
}
}
// 找一个天气情况的接口做测试
// ajaxF("get","http://wthrcdn.etouch.cn/weather_mini",{city:"北京"},function(res){
// var ul = document.createElement("ul");
// for( let i = 1 ; i <=5 ; i ++ ){
// var li = document.createElement("li");
// ul.appendChild(li);
// li.style.width = "100px";
// li.style.border = "1px solid red";
// li.style.height = "200px";
// li.style.float = "left";
// li.style.display = "flex";
// }
// document.body.appendChild(ul);
// ul.style.width = "510px";
// ul.style.height = "200px";
// let oLi = document.querySelectorAll("li");
// let arr = JSON.parse(res).data.forecast
// for( let i = 0 ; i < arr.length ; i++ ){
// oLi[i].innerHTML = arr[i].date + "<br><br>" + arr[i].high + "<br><br>" + arr[i].low + "<br><br>" + arr[i].fengxiang
// }
// })
//例
// ajaxF("get","http://wthrcdn.etouch.cn/weather_mini",{city:"北京"},function(res){
// console.log(res)
// })
// url :请求路径
// callback : 该参数是一个函数,回调函数
// data : 接口的参数
function ajaxGet(url,callback,data){
var xhr = null;
if( window.XMLHttpRequest ){
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
if( data ){ //如果有参数 在路径的后面拼接参数
url = url + "?" + data;
}
// if(arguments.length == 3){//表示传递的参数有三个
// url = url + "?" + data;
// }
xhr.open("GET",url,true);
xhr.send();
xhr.onreadystatechange = function(){
if( xhr.readyState == 4 && xhr.status == 200 ){
//拿到服务器的结果后 要实现的功能是可变的
callback(xhr.responseText);//通过函数的调用将服务器处理的结果以参数形式传递给前端
}
}
}
function ajaxPost(url,callback,data){
var ajax = null;
if( window.XMLHttpRequest ){
ajax = new XMLHttpRequest();
}else{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
ajax.open("POST",url);
ajax.send(data);//向服务器端发送数据 用户名
//设置请求头:
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.onreadystatechange = function(){
if(ajax.readyState == 4 && ajax.status == 200){
callback(ajax.responseText);
}
}
}