使用POST将jQuery Post节点发送到Node JS主体

时间:2016-08-03 20:45:32

标签: jquery node.js express

我不确定我做错了什么,但是当我使用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);
    }
});

1 个答案:

答案 0 :(得分:1)

由于您要发送 application / json ,因此您需要bodyParser.json()中间件:

app.use(bodyParser.json());