【问题标题】:Axios FormData() getting empty ObjectAxios FormData()获取空对象
【发布时间】:2018-11-30 18:49:09
【问题描述】:

浏览器端代码

let data = new FormData();
data.append('file', file);
data.append('userId', userId);


axios.post(`${baseUrl}/uploadFile`, data, {headers: {'Content-Type':'multipart/form-data'}}).then((result) => console.log(result)).catch((err) => cb(err))

服务器端代码

app.use((req, res, next) => {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, DELETE, PUT, PATCH, OPTIONS');
    res.setHeader('Access-Control-Allow-Headers', 'Content-Type, api_key, Authorization'); 
    res.setHeader('Access-Control-Expose-Headers', 'Content-Range');
    next();
  }); 

app.use('/', express.static('public'))

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

我几乎尝试了所有方法,但总是得到一个空对象。

文件是pdf格式

有人可以帮忙吗?

【问题讨论】:

    标签: javascript node.js axios form-data


    【解决方案1】:

    您正在发送multipart/form-data 编码数据。

    你有:

    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(bodyParser.json());
    

    • URL 编码数据的解码器
    • JSON 编码数据的解码器

    您没有用于多部分编码数据的!

    现在,既然您正在使用它,请参阅body parser 的文档:

    这不处理多部分实体,因为它们的复杂性和 通常大的性质。对于多部分实体,您可能对 以下模块:

    • busboy 和 connect-busboy
    • 多方和连接多方
    • 强大
    • 穆特

    【讨论】:

      猜你喜欢
      • 2018-07-07
      • 1970-01-01
      • 2015-06-04
      • 2019-07-08
      • 1970-01-01
      • 2021-11-21
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多