欢迎你的到此一游,在查看的过程中有疑问可在主页添加博主咨询,也可在下方评论留言。

ajax.js封装

//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);
		}
	}	
	
}

  

posted @ 2020-07-08 15:19  廖客  阅读(379)  评论(0编辑  收藏  举报