[英]Node js- req.body empty or undefined when handling ajax post request
许多用户提出的这个问题,我看到了所有解决方案,并尝试实施它们,但对我来说不起作用。 我试图获取由ajax发送的node js函数中的数据。 我在app.js中的代码
var express = require('express')
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json())
var app = express()
app.post('/'uploadFileProduction',jsonParser,function(req,res){
console.log("Hooorrey!!!!")
console.log(req.body)
})
我的Ajax代码部分是
<script>
$(function() {
$('#submit_modal').click(function(e) {
console.log('desired event fire!!!!!!!')
e.preventDefault();
var data = {};
data.title = "title";
data.message = "message";
$.ajax({
type: "POST",
url: 'uploadFileProduction',
data: JSON.stringify(data),
});
});
});
</script>
当我点击此ajax函数时,我的体内为空。 我尝试了以下解决方案,但没有运气
https://github.com/expressjs/body-parser/issues/101
当我在节点js中打印req时,它正在打印所有数据,但是在正文中它仅是{}。
请帮忙。
我认为问题是因为您将正文作为JSON对象发送,但未指定contentType。 如果不知道正确的内容类型,服务器将不知道如何解析您的身体。 您应该添加它以使工作正常:
$.ajax({
type: "POST",
url: 'uploadFileProduction',
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8" // <- this is what you should add
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.