我正在学习节点,并希望从Ajax调用向节点发送一些数据。
以下是我的Ajax和节点调用。
Ajax方法
function getUserName(){
var data ={};
data.email=$('#email').val();
data.fNmame=$('#fNmame').val();
data.lName=$('#lName').val();
$.ajax({
type: 'POST',
data: JSON.stringify(data),
contentType: "application/json",
dataType:'json',
url: '/getUserName',
success: function(data) {
console.log('success');
console.log(JSON.stringify(data));
},
error: function(error) {
console.log("some error in fetching the notifications");
}
});
}
节点功能
app.post('/getUserName',function(req,res){
var reqData = JSON.stringify(req.params);
console.log("reqData :::: " + reqData);
});
在日志中我可以看到
reqData :::: {}
请建议。
答案 0 :(得分:1)
POST
收到req.body
个数据。
req.params
用于动态参数。
对于/users/:id
,您会在id
中获得req.params
的值。
尝试将req.body
用于POST
正文数据。
答案 1 :(得分:0)
最后找到了我没有使用app.use(bodyParser.urlencoded( { extended: false } ));
的答案,因为哪个帖子没有按预期工作。
答案 2 :(得分:0)
您需要利用正文解析器中间件从post请求中提取数据。你可以这样做:
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
extended: true
}));
app.post('/getUserName',function(req,res){
var reqData = JSON.stringify(req.body.data);
console.log("reqData :::: " + reqData);
});
要提取数据,您需要将数据作为req.body.data而不是req.params获取。这用于从get路径获取动态变量。