如何访问通过Ajax POST发送到Nodejs服务器的数据?
//Client $.ajax( { url: '/getExp', data: 'Idk Whats Rc', type: 'POST', }); //Server app.post('/getExp', function(req, res){ var data = req.???; //I want data to be equal to 'Idk Whats Rc' }
Express 4.x:
Express 4不再包含Connect作为依赖项,这意味着您将需要单独安装主体解析模块。
解析器的中间件可以在自己的GitHub的仓库中找到这里。可以这样安装:
npm install body-parser
对于表单数据,这是使用中间件的方式:
var bodyParser = require('body-parser'); app.use(bodyParser.urlencoded());
对于Express 3.x和更低版本:
您需要使用bodyParser()Express中的中间件来解析HTTP请求的原始内容。然后填充中间件req.body。
bodyParser()
req.body
app.use(express.bodyParser()); app.post('/path', function(req, res) { console.log(req.body); });
您可能希望将一个对象而不是字符串传递给POST请求,因为您当前拥有的内容将如下所示:
{ 'Idk Whats Rc': '' }
使用如下代码:
$.ajax({ url: '/getExp', data: { str: 'Idk Whats Rc' }, type: 'POST', });
会给你这个:
{ str: 'Idk Whats Rc' }