【问题标题】:Send base64 object to expressjs server将 base64 对象发送到 expressjs 服务器
【发布时间】:2015-10-13 16:07:27
【问题描述】:

我从画布上得到了 base64 对象

var imageData = canvas.toDataURL('image/png');

我尝试通过 ajax 将此 base64 对象(imageData)发送到服务器:

var _data = {};
// set test property:
_data.avatar = imageData;
console.log(_data);
// Make an Ajax request
$.post('./setup', _data, function(result) {
console.log('result', result);
});  

在我的 nodejs 服务器(仅使用 express 中间件)中,我有一个简单的路由器来处理这个请求

router.post('/setup', function(req, res, next) {
    console.log('setup: data', req.body.data);
    console.log('setup: check', req.body.check);
    console.log('setup avatar: ', req.body.avatar);
    res.json({
    success:true
    });
});

实际上,它不起作用,我想知道为什么无法发送 base64 对象。 在另一种情况下,我的带有文本的 json 对象可以正常发送到服务器.. 感谢您将base64对象发送到expressjs服务器的帮助和解决方案

【问题讨论】:

  • console.logs 的输出是什么?旁注:您使用的是bodyParser吗?
  • 是的...我正在使用 bodyParse @Swaraj Giri...控制台登录我的服务器中没有任何内容
  • 检查 req.body 并检查 ajax 请求在开发者控制台中发送的内容。您是否正在序列化您通过 ajax 发送的数据?
  • 注意到 req.body 内部...我正在对序列化和非序列化数据进行测试,但没有案例可以将我的 base64 obj 传递给服务器。 ???
  • 实际上,控制台之类的命令没有被触发..@Swaraj Giri ..只有摩根输出告诉我post requets正在服务器上......:(

标签: ajax node.js express base64


【解决方案1】:

看看这个关于如何设置允许的身体大小的答案:

【讨论】:

    【解决方案2】:

    尝试增加身体解析器可以处理的数据限制,例如:

    app.use(bodyParser.json({limit: '50mb'}));
    app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
    

    【讨论】:

    • 这对我有帮助,所以我知道限制问题
    猜你喜欢
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    相关资源
    最近更新 更多