关于 FormData 上传文件一个小注意点

默认上传文件都是需要设置请求头为:Content-Type:multipart/form-data; 最近开发上传文件的功能,前端使用原生 fetch 上传图片,发送后端无法拿到文件,以前使用 axios 都是需要设置的,查看源码发现 axios 在请求的时候会判断数据类型是否为 FormData ,如果成立的话删除了请求头 Content-Type, 因为默认 FormData 模拟了原生表单,会自动编码转换为二进制,所以不需要额外设置请求头。

参考资料:

  • https://github.com/axios/axios/blob/master/lib/adapters/xhr.js

  • https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API/Using_Fetch

  • https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/Using_FormData_Objects

  • https://stackoverflow.com/questions/46640024/how-do-i-post-form-data-with-fetch-api

打赏作者

您将是第一位评论人!

提醒
avatar