2017-08-26 16 views
0

ReactJSクライアントからExpressサーバーにデータを投稿していますが、req.bodyのデータにアクセスできないようです....私はJSONオブジェクトを送信し、このよう:ExpressJs | req.bodyは空ではありませんが、データにアクセスできない

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で(req.bodyを)にconsole.logとき、私はこれを受け取る:

私が使用して私のエクスプレスで
{ '{"name":"test","items":': { '{"url":"test","code":"ING"},{"url":"test","code":"KIN"},{"url":"test","code":"GAO"}': '' } } 

bodyParser

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

私はJSON.stringify(req.body)とJSON.parse(req.body)を使ってみましたが、どちらも成功していませんでした。

+0

は、なぜあなたはアプリケーション/ X-WWW-'と'のContent-type'がを作るのですかform-urlencoded' POST本体はJSONですか? – shaochuancs

+0

ええ、コードを見ると、req.bodyはExpressでemtyのままになります。 –

+0

コードの 'Request'モジュールとは何ですか?また、ブラウザのHTTPネットワークを確認してください。DevTool - 'Content-Type'が' application/json'のときにJSON本体がクライアントから送られますか? – shaochuancs

答えて

0

これは解決策だった: How to allow CORS?

そして、これは私が正しいJSONリクエストを行う方法です:

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

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

    }); 
関連する問題