Angular 2 http post + Nodejs express

我无法在服务器上获得后参数。 我在Angular 2应用程序中发送请求到Nodejs express服务器。 在这里我的代码在Angular 2中:

import { Injectable } from 'angular2/core'; import { Http } from 'angular2/http'; @Injectable() export class QueryService { static get parameters() { return [[Http]] } constructor(http) { this.http = http; } postApi() { var headers = new Headers(); headers.append('Content-Type', 'application/json'); return this.http.post('http://localhost:3001/post_test', JSON.stringify({"id": 1, "name": "2"}), { headers: headers }).toPromise(); } } 

在浏览器中,我看到post params被发送,例如在Chrome部分“Request Playload”中包含我的发布数据。 在这里我的服务器:

app.js:

 var bodyParser = require('body-parser'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: true})); 

路线/ index.js:

 exports.post_test = function(req, res) { console.log('post_test ', req.body); } 

和输出是“post_test {}”

我不明白,问题在哪里。 因为我的服务器工作正常,当我使用Angular 1 $ http服务的后期查询。 请帮帮我!

你忘了导入Headers类:

 import { Injectable } from 'angular2/core'; import { Http, Headers } from 'angular2/http'; // <---- 

在这种情况下,标题不会与您的请求一起发送,但不会显示错误。