express 服务器如何获得ajax post方法提交的参数?
服务器使用req.body.XXX获取不到,而且显示req.body为undefined, 用res.json回送的数据客户端可以收到。 请问应该如何获取参数??? 感谢各位的回答与意见!
13 回复
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
// see https://github.com/expressjs/body-parser
// 添加 body-parser 中间件就可以了
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.post('/', function (req, res) {
console.log('req.body', req.body);
res.send({airead: 'fan'});
});
app.listen(8888);
// shell
//
// $ curl -d'fan=airead' localhost:8888
// {"airead":"fan"}%
@bourbon1991 一楼在误导楼主。post数据是放在body中得。而且params是获得get数据的。
需要一个中间件:body-parser
ajax:
$.ajax({
type: "POST",
url: "your url",
dataType:'json',
data: "email="+$('.email').val()+"&pwd="+$('.pwd').val(),
success:function(msg){...}
});
your server :
var email = req.body.email,
pwd = req.body.pwd;
//do something...
app.use(logger(‘dev’)); app.use(bodyParser.json()); app.use(bodyParser.urlencoded());
var c={a:a,b:b,c:c......} $.post("/ajax/autoprint",c,function(data){ //somefunctions })
console.log(req.body)
要写中间件。 EXPRESS默认的中间件只支持 JSON和urlencoded 我自己写了XML版中间件 但是HTML版。要你自己写了。或者你把HTML封在JSON里传。