我正在尝试从我的一个javascript文件到我的Node.js应用程序中的快速路径进行ajax调用,请注意,javascript文件也是同一个Node.js应用程序的一部分 .
我遇到的问题是传递给路由的数据始终为空 . 我可以看到正在调用该路由,因为我的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);
});
我的路线看起来像这样:
router.post("/match", middleware.isLoggedIn, function(req, res) {
console.log("Route Test1: " + req.body);
console.log("Route Test2: " + JSON.stringify(req.body));
});
在路由的第一个console.log中,我得到 Route Test1: [object Object]
,对于第二个console.log,我得到 Route Test2: {}
.
如何访问我传递给路线的数据“测试”?
在此先感谢您的帮助!
1 回答
首先,确保使用
body-parser
中的json()
方法,即虽然
"test"
是有效的JSON,但它的信息量不大 .尝试
在你的路线上,
您遇到的另一个问题是,由于连接,您会自动将
req.body
转换为console.log
调用中的字符串 .相反,试试吧