expressjs 支持umeditor 的图片上传

umedtor 的文件上传 是form 提交。
请求的header
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
 
在dialogs 里面的image.js
                $('<iframe name="up"  style="display: none"></iframe>').insertBefore(me.dialog).on('load', function(){
                    var r = this.contentWindow.document.body.innerHTML;
                    if(r == '')return;
                    me.uploadComplete(r);
                    $(this).unbind('load');
                    $(this).remove();
 
                });
表明返回的是html。so,我们要在express 返回制定的header Content-Type 必须是html
PS:umeditor 这样做事兼容IE9以下的浏览器,如果不是Content-Type html. form 表单提交就变成下载文件了。
 
 
在expressjs 中
res.json 方法如果没有设置,默认设置Content-Type=‘application/json’;
最后还是调用send 方法
源码如下
if (!this.get('Content-Type')) {
this.set('Content-Type', 'application/json');
}

return this.send(body);
这个不是我们想要的response header。。两种方案
 
1、手动设置
res.type('html');

在res.json
2、直接调用send 方法
result.state='SUCCESS';
res.send(JSON.stringify(result))
原文地址:https://www.cnblogs.com/yoable/p/6370190.html