浏览器端代码

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

有人可以帮忙吗?

最佳答案

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

你有:


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






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


您没有一个用于Multipart编码的数据!

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


  由于它们的复杂性和
  通常是大自然。对于多部分实体,您可能会感兴趣
  以下模块:
  
  
  busboy和connect-busboy
  多方和连接多方
  强大
  磨碎机

关于javascript - Axios FormData()获取空对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53555705/

10-13 06:33