我不确定我做错了什么,但是当我使用jQuery进行AJAX调用时 Node Express App不会传递给它的值。控制台日志的输出是“{}”
我试过curl和curl工作而不是jQuery请求。
curl命令:
curl -XPOST localhost:3000/upsert -d'{"test":"test"}'
节点JS摘录
var bodyParser = require('body-parser');
var express = require('express');
var app = express();
app.use(bodyParser.urlencoded({extended : true}));
app.post('/upsert',function(req, res){
console.log(req.body);
});
JQuery摘录:
$.ajax({
type: "POST",
url: '/upsert',
contentType: "application/json; charset=utf-8",
dataType: "json",
data: function () {
var payload = {};
payload["name"] = $("#exercise").val();
payload["reps"] = $("#reps").val();
payload["weight"] = $("#weight").val();
payload["date"] = $("#date").val();
payload["units"] = $('input[name=units]:checked').val();
return JSON.stringify(payload);
},
success: function (result) {
console.log(result);
},
failure: function (err) {
alert(err);
}
});
答案 0 :(得分:1)
由于您要发送 application / json ,因此您需要bodyParser.json()
中间件:
app.use(bodyParser.json());