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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示