2016-10-12 14 views
0

修正については、以下の受け入れ可能な回答を参照してください。私はまた私のPOSTリクエストからcontentType: 'appliction/json',行を削除しなければならなかった。ExpressでJquery POSTデータを受信

Node.js/Expressに文字列を送信しようとしていますが、req.bodyはサーバー側では定義されていません。

クライアントのjQuery:

$.post({ 
     traditional: true, 
     url: '/matches', 
     contentType: 'appliction/json', 
     data: viewedProfiles, 
     dataType: 'json', 
     success: function(response){ 

エクスプレス:私が試した

app.use(bodyParser.urlencoded({extended:true})); 
app.use(bodyParser.json()); 

app.post('/matches', isLoggedIn, function(req, res){ 
    console.log(req.body) // this is undefined 
    var loadedProfiles = [] 
    loadedProfiles.push(req.body.viewedProfiles) 
    console.log('loadedProfiles') 
    console.log(loadedProfiles) 

  • は指定していない 'のdataType'
  • data: JSON.stringify(viewProfiles)
  • を設定、クライアント上の配列に文字列を分割した後、私はdevのツールでXHRリクエストを見ることができるjQueryの
  • (ストローでクラッチ)の代わりにreq.bodyのreq.paramsを探して

それを文字列化持ちますそれは私が期待している文字列を含んでいます。

私はExpressにデータを送信するために欠けているのは何ですか?

ありがとうございました。

+0

を持っていますかあなたのページで実行中のミドルウェアを接続しますか? –

+0

私はjQueryのデータ投稿がアプリ内の他の場所で正常に実行されているとは限りません。 –

答えて

1

サーバ側のコードは問題なく表示されますが、$.post()機能が(URLがエンコードされた)URLにデータを送信するため、$.post()機能ではなく$.ajax()機能を使用する必要があります。だからあなたのjQueryのコードは、私は、これはあなたが

+0

はい、本当に助かりました!また、 'contentType: 'appliction/json'という行を削除しなければならなかった。 –

0

私は正確に同じ設定を構成した役立つことを願っています

$.ajax({ 
     url: '/matches', 
     type: 'POST', 
     contentType: 'application/json', 
     data: JSON.stringify({"viewedProfiles": viewedProfiles}), 
     success: function(response){ 

だろう。そして、以下のコード作品:

var profiles = { 'data' : 'hello' }; 

$.post({ 
     traditional: true, 
     url: '/matches', 
     contentType: 'application/json', 
     data: JSON.stringify(profiles), 
     dataType: 'json', 
     success: function(response){ console.log(response); } 
}); 

マイnodejsエンジン:あなたは `

app.use(bodyParser.urlencoded({extended:true})); 
app.use(bodyParser.json()); 

app.post('/matches' , function(req, res){ 
    console.log(req.body) // this outputs: { data: 'hello' } 
}); 

ところで、あなたのcontentTypeがあるタイプミスがあり、 'APPLIC ション/ jsonの'

関連する問題