Fetch POST传递参数及Node.js接收参数
标签(空格分隔): Node.js
XMLHttpRequest (Ajax)是一个设计粗糙的API,不符合关注分离(Separation of Concerns)的原则,配置和调用方式非常混乱,而且基于事件的异步模型写起来也没有现代的Promise,generator/yield,async/await 友好。
Fetch 的出现就是为了解决 XHR 的问题,Fetch API 是基于Promise 设计。
刚开始用的时候发现个问题,POST数据发现后端获取不到,GET方式是没有问题的。后来查资料发现是自己一些参数没有设置对。应该以如下方式
前端请求
fetch("http://192.168.199.141:3000/api/user/",{
method:'POST',
headers:{
'Content-Type': 'application/json'
},
body:JSON.stringify({
name:'john',
pass:'xioayuan'
})
})
.then((response)=>response.json())
.then((responseJsonData)=>{
alert("请求成功");
console.log(responseJsonData);
})
.catch((error)=>{
alert(error);
})
后端接收方式(Node.js中)
router.post('/',function(req,res){
//提取请求参数
var name = req.param('name');
var pass = req.param('pass');
console.log("name= "+name);
console.log("pass="+pass);
// 返回json给前端
res.send({
'username':name,
'password':pass
});
})
网友评论