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'; // <----
在这种情况下,标题不会与您的请求一起发送,但不会显示错误。