elementui自定义上传,使用axios上传FormData遇到的坑


elementui 中 Upload 组件自定义上传基本配置就不说了,主要记录一下遇到的问题.

下面是最开始的写法:

 

 请求后服务器报 500 错误:

 

 网上找了一圈后发现是缺少了 boundary,这个是浏览器进行分割文件时需要到的分割符。手动添加后又服务器又报了 400 错误,说是文件未接收到,但是前端可以正常打印出文件。

 查阅资料发现,在上传文件时不需要手动设置"Content-type", "multipart/form-data",浏览器会自动识别设置请求头。然后尝试去掉手动设置的请求头,还是报了个 500 错误:

 

 发现请求头是这个:

 

 又网上查了一圈,还是没有解决问题。这时候就在想,会不会是 axios 的问题,就尝试用 ajax 来写一下,结果请求居然成功了。。。

 

 那就是 axios 中的配置问题了,然后网上查找了关于 ajax 与 axios 上传 FormData 格式的区别,找到了一篇文章说是 axios 在内部进行了处理,所以在上传前需要使用 transformRequest 转换一下格式,更改代码后能够请求成功: 

  

以上是记录一下此问题的处理过程。

 

参考文章:https://blog.csdn.net/weixin_34413802/article/details/88722992

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM