2017-01-19 14 views
-1

私はangularjsクライアントにデータを持っています。 $ http.postを使用してサーバーにデータを送信すると、サーバーでデータを読み取ることができません。私はどこが間違っているのか分からないのですか? これは角度コードである:ここではノードjsサーバーがangularjsからデータを受信して​​いません

var data = $.param({ 
     id:$scope.user_id, 
    }); 
alert(JSON.stringify(data)); 
$http.post('/getdetails',data) 

は、ノードのjsサーバーコードです:サーバーログで

app.post('/getdetails',function(req,res){ 
    console.log(req.body); 
    console.log(req.body.id); 

}); 

出力:

{} 
undefined 

私が送ったデータを懸念していないです、私はそれがサーバーで読めるかどうかだけに関心があります。

ありがとうございます!

+2

使用:ヘッダで

var data = { id:$scope.user_id, }; $http.post('/getdetails',data) 

指定:

"Content-Type" : "application/json" 

を最終的な要求は次のようになりますただ、このようなnodeJsに直接JSONデータを送信しますhttp://expressjs.com)? [body-parsing middleware](http://expressjs.com/en/4x/api.html#req.body)を使用する必要があります。 –

+0

ステータスは何ですか?エラーブロックのステータスを処理する必要があります – Mithun

+0

はい、ボディパーサーを使用しています – VisheshRaju

答えて

0

$ .param()を使用してデータをシリアル化しようとしていますが、GETメソッドでのみ使用され、ポストでは使用されません。 ([表現]

$http.post('/getdetails',data,{headers : {"Content-Type" : "application/json"}}) 
+0

さて、私はそれを試して、それは動作していないようです!同じ結果が勝つ。 "app.use(bodyParser.urlencoded({extended:false}));" bodyparserを組み込む正しい方法ですか? – VisheshRaju

+0

はいまた、これらを追加します:app.use(bodyParser.json()); app.use(bodyParser.text()); app.use(bodyParser.urlencoded({ 拡張:false })); –

+0

そのようにすれば、要求に送信されたヘッダーに基づいてこれらのすべてのタイプを処理します。 –

関連する問題