2017-08-16 5 views
0

私のjavascriptファイルの1つから、Node.jsアプリケーション内のエクスプレスルートにajax呼び出しをしようとしていますが、javascriptファイルも同じNode.jsアプリケーションの一部です。Ajaxコールが動作しないルートを表現していますか?

問題は、ルートに渡されたデータが常に空であることです。私はconsole.logがreqにオブジェクトを表示しているのにそのオブジェクトが空であるため、ルートが呼び出されているのがわかります。ここで

はAJAX呼び出しのための私のコードです:

$.ajax({ 
     type: 'POST', 
     url: '/match', 
     contentType: 'application/json', 
     data: "test", 
     success: function(data) { 
      console.log("Successfully saved the matched beans to the user."); 
     } 
    }).done(function () { 
     console.log("OK"); 
    }).fail(function (jqXHR, textStatus, errorThrown) { 
     console.log(jqXHR); 
     console.log(textStatus); 
     console.log(errorThrown); 
    }); 

そして、私のルートは、次のようになります。私はRoute Test1: [object Object]を入手ルートの最初にconsole.logでと第二のため

router.post("/match", middleware.isLoggedIn, function(req, res) { 
    console.log("Route Test1: " + req.body); 
    console.log("Route Test2: " + JSON.stringify(req.body)); 
}); 

私はRoute Test2: {}を得る。

私がルートに渡したデータ "テスト"にアクセスするにはどうすればよいですか?

ありがとうございました!まず

+0

を試してみてください!それは 'undefined'を返します。私は実際にデータとして渡す必要のあるJSONオブジェクトを持っていますが、問題が発生したときに単に「テスト」するように単純化しました。他のアイデア? – user2573690

+0

コメントを回答に移動しました。 'body-parser'を' app.use(bodyParser.json()) 'と一緒に使っていますか? – Phil

+0

@Philはい私のapp.js app.use(bodyParser.urlencoded({extended:true}))に次の行があります。 – user2573690

答えて

1

、あなたがbody-parserからjson()方法を使用していることを確認し、すなわち

app.use(bodyParser.json()) 

"test"が有効なJSONですが、それは非常に有益ではありません。

あなたがにして実行しているもう一つの問題は、あなたが自動的に起因するあなたのconsole.log呼び出しで文字列にreq.bodyを変換することである

console.log('Route Test1:', req.body.data) 

contentType: 'application/json', 
processData: false, 
data: JSON.stringify({data: 'test'}) 

とあなたのルートでお試しください連結する。

代わりに、感謝@Phil

console.log('Route Test1:', req.body) 
+0

ありがとう! app.useを追加する(bodyParser.json()); app.jsとprocessData:ajax呼び出しが失敗しました! bodyParser行を追加せずに同じ機能を実現できますか?それは私の理解のためだけに保つことです。 – user2573690

+0

@ user2573690 JSONリクエストをアプリに投稿しますか?もしそうなら、 'bodyParser.json()'を使うべきです。そうでなければ、 'application/x-www-form-urlencoded'という書式のデータを投稿するようにクライアント側のコードを変更する必要があります – Phil

+0

ああ、私はbodyParserについて少し読んだだけで、 JSONリクエストを投稿する助けてくれてありがとう! – user2573690

関連する問題