2016-03-22 15 views
5

サーバー上でポストパラメーターを取得できません。 Nodejs ExpressサーバーにAngular 2アプリでポストリクエストを送信します。 ここで角度2で私のコード:私は見ブラウザで角2 http post + Nodej express

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(); 
    }                                    
} 

ポストのparamsは、クロームのセクションで、たとえば、送信されたことを「要求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クラスをインポートするのを忘れて

答えて

3

:この場合

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

を、ヘッダはあなたの要求と一緒に送信されることはありませんが、エラーは表示されません。