【发布时间】:2016-12-24 16:41:44
【问题描述】:
我正在尝试做两个不同的项目请求。我请求一个使用请求模块的其他项目使用 express 但在 express 项目中出现 json 解析错误
示例对象
var data= {
User: {
ID: 123
},
Text: 'hello world'
};
request.post({
headers: { 'content-type': 'application/x-www-form-urlencoded' },
url: "url/test",
body: JSON.stringify(data)
}, function (error, response, body) {
logger.debug("error : ", error);
logger.debug("body : ", body);
});
听一个快递项目
app.post('/test', function(req, res) {
try {
res.header('Access-Control-Allow-Origin', req.headers.origin || "*");
res.header('Access-Control-Allow-Methods', 'POST');
res.header('Access-Control-Allow-Headers', 'Content-Type');
console.log(req.body);
var x = JSON.parse(req.body);
res.send(200);
} catch (error) {
res.send(200);
}
});
req.body 是
{ '{"User":{"ID":123},"Text":"hello world"}': '' }
错误是
SyntaxError: 位置 1 处 JSON 中的意外标记 o
击败额外的单引号 { '{"User":{"ID":123},"Text":"hello world"}': '' }
【问题讨论】:
-
我认为这个问题与stackoverflow.com/questions/10005939/…的问题相同,基本上,您需要bodyParser来解析json主体
-
感谢 punneng 但 bodyparse 在我的代码中