2014-04-29 12 views
18

के साथ नोड.जेएस में JSON पोस्ट अनुरोधों को पार्स करना मैं एक साधारण एक्सप्रेस आवेदकॉन लिखने की कोशिश कर रहा हूं जो एक पोस्ट अनुरोध में JSON प्राप्त करता है। यहाँ मैं अब तक सर्वर पर है:एक्सप्रेस 4

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 

क्या कोई कारण बता सकता है?

उत्तर

20

अगर आप 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)); 
+0

क्या आप ग्राहक को नियंत्रित नहीं करते तो क्या होगा? यदि ग्राहक इस हेडर को सेट नहीं कर रहा है, लेकिन मुझे पता है कि यह एक JSON बॉडी पोस्ट कर रहा है, तो क्या मैं इसे एक्सेस कर सकता हूं? – daltonclaybrook

+1

हां। यदि आप 'app.use (bodyParser.text()) का उपयोग करते हैं, तो इसे 'setRequestHeader' के बिना काम करना चाहिए;'। – MikeSmithDev

संबंधित मुद्दे