2017-03-09 34 views
-1

我創建的node.js服務器並解析jQuery的請求。節點JS請求參數值無法解析

jQuery的要求:

$.post("http://localhost:3000/usertoken/", 
     { 
      "token": "1212555", 
     }, 
     function(data,status){ 


alert("Data: " + data + "\nStatus: " + status); 
     }); 

節點服務器

var express = require('express'); 
var sub_server = require('./sub_server.js'); 
var bodyParser = require('body-parser') 

var app = express(); 
app.listen(3000); 
app.use(express.static('www')) 
// parse application/json 
app.use(bodyParser.json()) 


app.get('/:id', function(req, res){ 
    console.log("request:",req.params.id); 
    res.send('The id you specified is ' + req.params.id); 
}); 

var firebase_token; 
// Post method 
app.post('/usertoken', function(req, res){ 

    var token1 = req.body.token;; 
    console.log("req parameter:",token1); 

    res.end(JSON.stringify("hemant")); 

}); 

我得到下面的消息。 需求參數:undefined

幫我獲得發佈價值。

謝謝。

+0

你可以從這裏得到一些很好的信息。 http://stackoverflow.com/questions/4295782/how-do-you-extract-post-data-in-node-js –

+0

您是否收到,當你安慰'req.body'什麼價值? –

回答

0

請確保您使用身體的解析器:

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

及用途:

app.use(bodyParser.json()); 

如果在請求使用JSON的身體,或者這樣:

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

如果使用application/x-www-form-urlencoded - 在這兩種情況下,請確保您在請求中發送正確的MIME類型。

請參閱該文檔:https://www.npmjs.com/package/body-parser

欲瞭解更多信息請參閱這些問題的答案:

+0

我添加了serve.js文件。請檢查一下。獲取相同的錯誤。 –

0

雖然您的服務器應該正常工作,但您的客戶端卻不能。

你缺少對$.post呼叫contentType選項。因爲如果你交給一個對象內的一切,你只能指定此參數,改變調用下面的代碼,以確保你不僅發送JSON數據,但也相應地設置content-type頭:

$.post({ 
    url: "http://localhost:3000/usertoken/", 
    data: { 
    "token": "1212555", 
    }, 
    contentType: "application/json", 
    success: function (data, status) { 
    // ... 
    } 
}); 

body-parser中間件只有在content-type頭指出,要發送JSON數據變得活躍。