Javascript 将数据从Ajax Post传递到节点js
我正在学习node,希望从Ajax调用向node发送一些数据 下面是我的Ajax和节点调用 Ajax方法Javascript 将数据从Ajax Post传递到节点js,javascript,jquery,node.js,ajax,Javascript,Jquery,Node.js,Ajax,我正在学习node,希望从Ajax调用向node发送一些数据 下面是我的Ajax和节点调用 Ajax方法 function getUserName(){ var data ={}; data.email=$('#email').val(); data.fNmame=$('#fNmame').val(); data.lName=$('#lName').val(); $.ajax({ type: 'POST', data: J
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 :::: {}
请建议。POST数据在req.body中接收。
req.params用于动态参数。
对于/users/:id,您将在req.params中获得id的值。
尝试使用req.body作为正文后数据。最终找到答案,我没有使用app.usebodyParser.urlencoded{extended:false};因为该post未按预期工作。您需要使用body解析器中间件从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路径获取动态变量。从req.params更改为req.body,输出更改为reqData:::未定义您是否使用express?我想你是的。你有身体吗?仅此代码很难说,Express 4+需要此代码。我使用的是Express 4.15,我没有使用表单提交。单击按钮,我想进行一个ajax调用。var reqData=JSON.parsereq.body;我会为你工作的。