AJAXからNode JSサーバーに変数を渡していますが、要求からデータを抽出しようとすると、私は[Object Object]
を取得し続けます。どのようにAJAXからNodeにデータを渡すのですか?Nodejsがリクエストから[object Object]を取得しています
AJAX:
$.ajax({
type: "POST",
url: "/Watch",
data: {"name" : stockName},
contentType: "json",
success: function(d) {
//Stuff happening
},
error: function(d) {
console.log("Error");
}
});
ノードJSサーバー:ノード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("");
});
にconsole.logは私がリクエストからデータを取得しようとしたさまざまなもののいくつかを示しています。
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);
});
eval('('+ msg + ')');
は、あなたが持ってよろしいです 'app.use(bodyParser.json())'またはこのルートハンドラの前に追加似たような? – mscdexはいファイルの先頭にあります – develop1
次に、あなたの 'data'を明示的に' JSON.stringify() 'し、' application/json 'のように完全な 'contentType'を使う必要があるかもしれません。 – mscdex