expressionPOST req.body分析器是空的

我看到堆栈溢出类似的问题,并find解决scheme使用:

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

但是,当打印日志req.body是空白的。

app.js内容:

 var express = require('express'); var path = require('path'); var app = express(); var bodyParser = require('body-parser'); // Define the port to run on app.set('port', 8888); app.use(express.static(path.join(__dirname, '/webapp/public'))); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.post('/getsolution', function (req, res) { console.log("request body is",req.body); //----req.body is blank here }); 

从angular度发布请求代码如下

 var parameters = JSON.stringify({ "urlPath": $location.path()}); $http.post('http://localhost:8888/getsolution/', parameters) .then(function (response) { if (response.data == "") { $window.location.href = 'http://localhost:8888/'; } else { $scope.puzzle = response.data; $scope.puzzleSolution = response.data.solution; } }).catch(function onError(response) { $window.location.href = 'http://localhost:8888/'; }); 

日志打印在控制台上

请求正文是{}

使用下面的代码段时,它不起作用

 var app = angular.module('puzzleappsolution', [], function ($locationProvider) { $locationProvider.html5Mode(true); });//----->It is now working 

但在下面使用时,它正在工作

 var app = angular.module('puzzleappsolution', []); 

以angular度向您的请求添加Content-Type标头:

 $http.post('http://localhost:8888/getsolution/', parameters, { headers: { 'Content-Type': 'application/json' } })