Ajax获取node服务器数据的完整步骤
1.准备
因为是要将服务器获取的数据放在网页中所以说对页面的渲染是必要的这里我准备的是art-template模板
2.服务器的准备
服务器要准备好渲染到页面的数据
3.页面的操作
这里我做的的是一个搜索框提示功能讲解都在代码注释中
服务器代码如下
//输入框文字提示
app.get("/searchAutoPrompt",(req,res)=>{
//搜索关键字
constkey=req.query.key;
//提示文字列表
constlist=["百度","百度官网","百度游戏","百度网盘"];
//搜索结果filter是一个遍历的函数includes(key)是凡是字符串含有key都返回
letresult=list.filter((item)=>item.includes(key));
//将查询结果返回给客户端
res.send(result);
});
页面代码:
下面的代码我用了一个封装好的Ajax函数
代码如下
functionajax(options){
//默认值
vardefaults={
type:'get',
url:'',
async:true,
data:{},
header:{
'Content-Type':'application/x-www-form-urlencoded'
},
success:function(){},
error:function(){}
}
//使用用户传递的参数替换默认值参数
Object.assign(defaults,options);
//创建ajax对象
varxhr=newXMLHttpRequest();
//参数拼接变量
varparams='';
//循环参数
for(varattrindefaults.data){
//参数拼接
params+=attr+'='+defaults.data[attr]+'&';
//去掉参数中最后一个&
params=params.substr(0,params.length-1)
}
//如果请求方式为get
if(defaults.type=='get'){
//将参数拼接在url地址的后面
defaults.url+='?'+params;
}
//配置ajax请求
xhr.open(defaults.type,defaults.url,defaults.async);
//如果请求方式为post
if(defaults.type=='post'){
//设置请求头
xhr.setRequestHeader('Content-Type',defaults.header['Content-Type']);
//如果想服务器端传递的参数类型为json
if(defaults.header['Content-Type']=='application/json'){
//将json对象转换为json字符串
xhr.send(JSON.stringify(defaults.data))
}else{
//发送请求
xhr.send(params);
}
}else{
xhr.send();
}
//请求加载完成
xhr.onload=function(){
//获取服务器端返回数据的类型
varcontentType=xhr.getResponseHeader('content-type');
//获取服务器端返回的响应数据
varresponseText=xhr.responseText;
//如果服务器端返回的数据是json数据类型
if(contentType.includes('application/json')){
//将json字符串转换为json对象
responseText=JSON.parse(responseText);
}
//如果请求成功
if(xhr.status==200){
//调用成功回调函数,并且将服务器端返回的结果传递给成功回调函数
defaults.success(responseText,xhr);
}else{
//调用失败回调函数并且将xhr对象传递给回调函数
defaults.error(responseText,xhr);
}
}
//当网络中断时
xhr.onerror=function(){
//调用失败回调函数并且将xhr对象传递给回调函数
defaults.error(xhr);
}
}
{{eachresult}}
{{$value}}
{{/each}}
总结
到此这篇关于Ajax获取node服务器数据的文章就介绍到这了,更多相关Ajax获取node服务器数据内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!