Javascript 处理ajax post请求时,节点js-req.body为空或未定义
很多用户问我这个问题,我看到了所有的解决方案,并试图实现它们,但它对我不起作用。 我正在尝试获取由ajax发送的NodeJS函数中的数据。 app.js中的我的代码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 =
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