QQ浏览器使用axios上传文件为空的问题

记录一下这几天费尽心力解决的一个bug,关于axios库的。

这是我使用antd库的Input组件自定义的上传函数

这是上传的文件,这里嵌入了一个裁剪的小插件clipic,问题发生在裁剪完成之后,在下方红色方框内将文件上传的时候

 之前一直的写法是这样,这里的Axios是经过了全局配置的,设置了headers,ContentType等等,没毛病

除了QQ浏览器 ,其他浏览器从来没有出现过文件上传失败的情况。

前几天线上反馈回来bug说在手机的qq浏览器一直上传失败,经过不懈努力终于找到了问题,一般来说浏览器会自动帮我们加上Content-Type:application/json这种请求头,普遍也是使用这种。

但在上传文件的时候,后端需要的请求头是Content-Type:multipart-formData,并且正常的文件上传会带一串分隔符,像这样

 但在手机qq浏览器上传时抓包看到的数据发出去是{}空的,并且请求头还是json.总觉得qq浏览器把什么东西过滤了。后来几经辗转,才找到是axios库的问题,之前一直以为是不支持formData还是什么的。最终在上传的地方把axios换成fetch去请求才解决了问题。

另外还有一个是,这种不兼容的情况不是每个版本的qq浏览器都有,在我手机上反正是有这种情况,设备是iphone12,系统是15.0,qq浏览器是13.0.5。

并且还有个不兼容的是,不支持使用form表单改文件名,像这样。最后让后端增加了字段,把文件名存到另一个字段里才解决这个问题。

虽然使用fetch解决了这个问题,但axios不支持的原因还是不太知道,如果有大佬知道的,还请解答下噢~ 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值