私の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: {}
を得る。
私がルートに渡したデータ "テスト"にアクセスするにはどうすればよいですか?
ありがとうございました!まず
を試してみてください!それは 'undefined'を返します。私は実際にデータとして渡す必要のあるJSONオブジェクトを持っていますが、問題が発生したときに単に「テスト」するように単純化しました。他のアイデア? – user2573690
コメントを回答に移動しました。 'body-parser'を' app.use(bodyParser.json()) 'と一緒に使っていますか? – Phil
@Philはい私のapp.js app.use(bodyParser.urlencoded({extended:true}))に次の行があります。 – user2573690