Javascript 处理ajax post请求时,节点js-req.body为空或未定义

Javascript 处理ajax post请求时,节点js-req.body为空或未定义,javascript,node.js,ajax,Javascript,Node.js,Ajax,很多用户问我这个问题,我看到了所有的解决方案,并试图实现它们,但它对我不起作用。 我正在尝试获取由ajax发送的NodeJS函数中的数据。 app.js中的我的代码 var express = require('express') var bodyParser = require('body-parser') app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()) var app =

很多用户问我这个问题,我看到了所有的解决方案,并试图实现它们,但它对我不起作用。 我正在尝试获取由ajax发送的NodeJS函数中的数据。 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>

$(函数(){
$(“#提交模式”)。单击(功能(e){
console.log('所需事件火灾!!!!!!!')
e、 预防默认值();
变量数据={};
data.title=“title”;
data.message=“message”;
$.ajax({
类型:“POST”,
url:“uploadFileProduction”,
数据:JSON.stringify(数据),
});
});
});
当我使用这个ajax函数时,我的身体会变为null。 我尝试了以下解决方案,但没有成功

当我在节点js中打印req时,它正在打印所有数据,但在body中它只是{}


请提供帮助。

我认为问题在于您将正文作为JSON对象发送,但没有指定contentType。在不知道正确的内容类型的情况下,服务器不知道如何解析您的正文。您应该添加它以使事情正常进行:

$.ajax({
   type: "POST",
   url: 'uploadFileProduction',
   data: JSON.stringify(data),
   contentType: "application/json; charset=utf-8" // <- this is what you should add
});
$.ajax({
类型:“POST”,
url:“uploadFileProduction”,
数据:JSON.stringify(数据),

contentType:“应用程序/json;字符集=utf-8”//请创建一个最小、完整且可验证的示例。您显示的代码有语法和运行时错误,根本无法运行。@t.niese我在这里编写了我的函数,试图在其中接收数据和ajax脚本。是的,但服务器端代码已完全损坏。我只缺少此内容类型。谢谢,它现在运行正常。谢谢T