我创建了node.js服务器并解析了jquery请求。
jquery请求:
$.post("http://localhost:3000/usertoken/",
{
"token": "1212555",
},
function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
节点服务器
var express = require('express');
var sub_server = require('./sub_server.js');
var bodyParser = require('body-parser')
var app = express();
app.listen(3000);
app.use(express.static('www'))
// parse application/json
app.use(bodyParser.json())
app.get('/:id', function(req, res){
console.log("request:",req.params.id);
res.send('The id you specified is ' + req.params.id);
});
var firebase_token;
// Post method
app.post('/usertoken', function(req, res){
var token1 = req.body.token;;
console.log("req parameter:",token1);
res.end( JSON.stringify("hemant"));
});
我收到消息。 req参数:undefined
帮助我获得后期价值。
谢谢。
答案 0 :(得分:0)
确保使用正文解析器:
var bodyParser = require('body-parser');
并使用:
app.use(bodyParser.json());
如果您在请求中使用JSON正文,或者:
app.use(bodyParser.urlencoded({ extended: false }));
如果您使用application/x-www-form-urlencoded
- 在这两种情况下都要确保在请求中发送正确的MIME类型。
请参阅文档:https://www.npmjs.com/package/body-parser
有关详细信息,请参阅以下答案:
答案 1 :(得分:0)
虽然您的服务器应该正常工作,但您的客户端却没有。
您错过了contentType
来电中的$.post
选项。因为只有当您移交对象中的所有内容时才能指定此参数,请将调用更改为以下代码,以确保您不仅发送JSON数据,而且还相应地设置content-type
标头:
$.post({
url: "http://localhost:3000/usertoken/",
data: {
"token": "1212555",
},
contentType: "application/json",
success: function (data, status) {
// ...
}
});
body-parser
中间件仅在content-type
标头指出您正在发送JSON数据时才会变为活动状态。