[英]Nodejs getting [object Object] from request
我將變量從AJAX傳遞給Node JS服務器但是,當我嘗試從請求中提取數據時,我不斷獲取[Object Object]
。 如何將數據從AJAX傳遞到Node?
AJAX:
$.ajax({
type: "POST",
url: "/Watch",
data: {"name" : stockName},
contentType: "json",
success: function(d) {
//Stuff happening
},
error: function(d) {
console.log("Error");
}
});
節點JS服務器:
app.post('/Watch', function(req, res) {
console.log("DATA from AJAX = " + req.body);//Returns [Object Object]
console.log("DATA from AJAX = " + req.body.data);//Returns 'undefined'
console.log("DATA from AJAX = " + req.data);//Returns 'undefined'
console.log("DATA from AJAX = " + req.name);//Returns 'undefined'
console.log("DATA from AJAX = " + req.body.data);//Returns 'undefined'
res.send("");
});
在Node JS中,console.log顯示了我嘗試從請求中獲取數據的一些不同之處。
在@mscdex的幫助下,解決方案是
AJAX:
alert(JSON.stringify({"name" : stockName}));
$.ajax({
type: "POST",
url: "/Watch",
data: JSON.stringify({"name" : stockName}),
contentType: "application/json",
success: function(d) {
//Stuff
},
error: function(d) {
console.log("Error");
}
});
節點JS:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var port = process.env.PORT || 5000;
app.use(bodyParser.json());
app.post('/Watch', function(req, res) {
console.log("In Watchlist POST");
console.log("DATA from AJAX = " + req.body.name);//This was the solution
res.send("Finished Watchlist post");
});
app.use(express.static('public'));
app.listen(port, function () {
console.log('App listening on port ' + port);
});
使用res.format格式化並發送到請求的內容類型,
res.format({
'text/plain': function(){
res.send( 'some json string inside quotes' );
},
'text/html': function(){
res.send('sending html response');
},
'application/json': function(){
res.json({
success: true,
messge: 'what you requested',
});
},
'default': function() {
res.status(406).send('Invalid format requested!');
}
});
您可以隨時填充數據。 在javascript上,只需評估get / post eval('('+ msg + ')');
上的字符串eval('('+ msg + ')');
$.ajax {
...
success: function (msg, statusText) {
console.log("Response: " + msg);
msg = eval('('+ msg + ')');
$('.result').html(msg.status);
console.log(msg);
},
....
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.