当前位置: 首页 > 后端技术 > Node.js

封装ajax请求,后台使用node(练习node对get和post请求的处理)

时间:2023-04-03 20:31:49 Node.js

XMLHttpRequest用于前台和服务器之间交换数据。具体属性和方法:https://developer.mozilla.org...本例中使用的属性和方法open(type,url,isAsync)send(body),在post请求的send方法中发送数据onreadystatechangeresponseText为更多方法和属性:https://developer.mozilla.org...封装ajax代码//封装ajax方法,//思路:使用XMLHttpRequest和改变对象的方法send和open//get和post方面的区别的写法://get数据在open方法中url参数中直接上传到后台//post数据需要在send方法中发送到后台functionajax(json){varajax;//创建一个XMLHTTP对象if(window.XMLHttpRequest){ajax=newXMLHttpRequest();}else{ajax=newActiveXObject("Microsoft.XMLHTTP");//Microsoft}//获取请求方法if(json.type=="get"){ajax.open('get',json.url+'?'+getParams(json.data),true);ajax.发送();}//post请求方法else{ajax.open('post',json.url,true);ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");ajax.send(getParams(json.data));}//onreadystatechange//当r当readyState发生变化时,会触发onreadystatechange()//readyState包含XMLHttpRequest状态信息//readyState://0:请求未初始化//1:已建立与服务器的连接//2:服务器已接收请求//3:服务器正在响应请求//4:请求已经完成,响应准备就绪ajax.onreadystatechange=function(){if(ajax.readyState==4){//结束响应,前台收到数据if(ajax.status>=200&&ajax.status<300||ajax.status==304){json.success(ajax.responseText);}else{json.error&&json.error();}}}}//处理参数格式functiongetParams(paramsObj){letparamsArr=[];for(letkeyinparamsObj){paramsArr.push(key+"="+paramsObj[key]);}返回paramsArr.join("&");}nodebackground//封装ajax请求方法varhttp=require("http");varUrlLid=require("url");//处理get请求的url参数varqueryString=require("querystring");//处理post请求参数//获取请求http.createServer(function(req,res){res.setHeader("Accesss-Control-Allow-Origin","*");letuserMessage=UrlLid.parse(req.url,true);if(userMessage.username=="wanglf"&&userMessage.password=="123"){res.write("ok");}else{res.write("nook");}res.end();}).listen(7890);//post请求http.createServer(function(req,res){res.setHeader("Access-Control-Allow-Origin","*");//允许跨域letstr="";req.on("data",function(data){str+=data;});req.on("end",function(){varjson=queryString.parse(str);if(json.username=="wanglf"&&json.password=="123"){res.write("好的”);}else{res.write(“不行”);}res.end();});}).listen(7891);