关于 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
您将是第一位评论人!