【问题标题】:Parsing JSON post requests in Node.js with Express 4使用 Express 4 在 Node.js 中解析 JSON 发布请求
【发布时间】:2014-06-15 10:21:02
【问题描述】:

我正在尝试编写一个在 Post 请求中接收 JSON 的简单 Express 应用程序。这是我目前在服务器上的内容:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();
app.use(bodyParser.json());

app.post('/acceptContacts', function(req, res) {
    'use strict';
    console.log(req.body);
    console.log(req.body.hello);
    res.send(200);
});

app.listen(8080);

这是我在浏览器中客户端的内容:

var req = new XMLHttpRequest();
req.open('POST', 'http://localhost:8080/acceptContacts?Content-Type=application/json');
var obj = {hello:'world'};
req.send(JSON.stringify(obj))

但是,我在服务器的控制台上收到以下输出:

{}
undefined

谁能提出原因?

【问题讨论】:

    标签: json node.js express xmlhttprequest


    【解决方案1】:

    如果您使用setRequestHeader,它将起作用:

    var req = new XMLHttpRequest();
    req.open('POST', 'http://localhost:8080/acceptContacts');
    req.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
    var obj = {hello:'world'};
    req.send(JSON.stringify(obj));
    

    【讨论】:

    • 不控制客户端怎么办?如果客户端没有设置此标头,但我知道它正在发布 JSON 正文,有什么方法可以访问它吗?
    • 是的。如果您还使用app.use(bodyParser.text());,它应该可以在没有setRequestHeader 的情况下工作。
    猜你喜欢
    • 2018-10-19
    • 2012-08-13
    • 2012-12-13
    • 1970-01-01
    • 2014-03-22
    • 2019-10-27
    • 2015-08-22
    • 2015-05-31
    • 2015-09-22
    相关资源
    最近更新 更多