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 文件?
...
});

注释中两个问题请回答一下,谢谢。
展开
 我来答
永久的指针oO
推荐于2016-10-13 · TA获得超过145个赞
知道小有建树答主
回答量:189
采纳率:33%
帮助的人:48.8万
展开全部

你这是jquery的ajax么。。。看着好别扭。。

$.ajax({
    url:'..',
    type:'post',
    data:data,
    dataType:'json',
    success:function(data){
        
    },
    failure:function(data){
    
    }
})
  1. 你需要表单数据就传data不需要就传blob但是要传json格式  { blod:blob  }

  2. node没获取到数据可能是你的数据有问题  你再$.ajax函数前面 console.log(data)控制台看下data里的内容

  3. 如果data内容没问题可能就是你的ajax写的有问题 或者是跨域请求了 node在res.header中要设置下允许的域的消息头。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式