ExpressJs | req.body不是空的,但无法访问数据

时间:2017-08-26 08:48:37

标签: json node.js express

我将一些数据从我的ReactJS客户端发布到Express服务器,但似乎我无法访问req.body中的数据....我以这种方式发送JSON对象:< / p>

var url = 'http://localhost:8000/scrape/';
    const {main} = getState()

    const info = { name : main.title, items : main.list}
    var options = {
      url: url,
      method: 'POST',
      body : JSON.stringify(info),
      json: true,
      headers : {
        'Content-Type': 'application/x-www-form-urlencoded'
      }
    };


    Request(options, (error, response, data) => {
        // !error ? dispatch( setSearchResults(JSON.parse(data) ) ) : dispatch( setError(error) );
    });

当我在Express中使用console.log(req.body)时,我会收到:

{ '{"name":"test","items":': { '{"url":"test","code":"ING"},{"url":"test","code":"KIN"},{"url":"test","code":"GAO"}': '' } }

在我的Express中我使用bodyParser

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

我尝试过使用JSON.stringify(req.body)和JSON.parse(req.body),但两者都没有成功,有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这是解决方案: How to allow CORS?

这就是我如何制作正确的JSON请求:

var options = {
      uri: url,
      method: 'POST',
      json: {
        "name": main.tile, "items" : main.list
      }
    };

    Request(options, (error, response, data) => {

    });