我不明白为什么我无法使用Angular.js Express获取POST表格的数据。
Angular Part:
$http.post(baseURL+"/search", data).success(function(data, status) {
$scope.results = data;
});
快递部分:
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/search', function(req, res){
console.log(req.query, req.body, req.params);
});
日志为{} {} {}。 我无法弄清楚我做错了什么。
我也尝试过:
$http({
method: "POST",
url : baseURL+"/search",
data : {name: 'tete'},
headers: {'Content-Type': 'application/json'}
}).success( function(data){
console.log(data);
});
它也不起作用。
答案 0 :(得分:4)
Angular默认将数据发送为JSON。
$httpProvider.defaults.headers.post //Content-Type: application/json
您只包含urlencoded
正文解析器中间件。您需要包含bodyParser.json()
。
app.use(bodyParser.json());
app.post('/search', function(req, res){
console.log(req.body);
});
答案 1 :(得分:1)
Angular $http
服务似乎将数据作为JSON发送,并且您缺少相应的bodyParser。
尝试在快捷方式的POST路线之前用app.use(bodyParser.json());
替换bodyParser。