Node.js 中 req.body 无法获取 POST 数据
前端:vardata=newFormData();data.append('file',blob);//blob是从麦克风获取的一段音频$.ajax({url:'...'...
前端:
var data = new FormData();
data.append('file', blob); // blob 是从麦克风获取的一段音频
$.ajax({
url: '...', // 省略
type: 'POST',
data: data, // ① 这里是传 data 好,还是直接传 blob 好?
contentType: false,
processData: false, // 这里用 true 会报错,貌似只能 false
success: function (data) { ... }).fail(function () { ... });
后端:
router.post('/voice/:sender/:receiver/:time', function (req, res) {
...
var voiceMessage = req.body; // ② 这里获取不到传过来的 data 文件?
...
});
注释中两个问题请回答一下,谢谢。 展开
var data = new FormData();
data.append('file', blob); // blob 是从麦克风获取的一段音频
$.ajax({
url: '...', // 省略
type: 'POST',
data: data, // ① 这里是传 data 好,还是直接传 blob 好?
contentType: false,
processData: false, // 这里用 true 会报错,貌似只能 false
success: function (data) { ... }).fail(function () { ... });
后端:
router.post('/voice/:sender/:receiver/:time', function (req, res) {
...
var voiceMessage = req.body; // ② 这里获取不到传过来的 data 文件?
...
});
注释中两个问题请回答一下,谢谢。 展开
展开全部
你这是jquery的ajax么。。。看着好别扭。。
$.ajax({
url:'..',
type:'post',
data:data,
dataType:'json',
success:function(data){
},
failure:function(data){
}
})
你需要表单数据就传data不需要就传blob但是要传json格式 { blod:blob }
node没获取到数据可能是你的数据有问题 你再$.ajax函数前面 console.log(data)控制台看下data里的内容
如果data内容没问题可能就是你的ajax写的有问题 或者是跨域请求了 node在res.header中要设置下允许的域的消息头。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询