解决系统兼容性中FormData对象包含appendData和realFormData属性

项目场景:

移动端vue项目前端通过axios发送post请求传输FormData数据上传文件到后台


问题描述

发现pc和安卓系统正常使用new FormData()对象,但是IOS系统则产生的对象是Object{appendData : …, realFormData : …}这种格式的。

解决方案:

方法一:

const formData = new FormData();
formData.append(key, value);
axios.post(`/api/yoururl`,
data:formData.realFormData || formData
)
.then(res=>{
  console.log('res=>',res);           
})

方法二:

方法一的办法虽简单解决,但是也不知道不同版本系统或新的其他浏览器会产出别的数据结构。所以不保险

直接在index.html使用’< script>’ 标签解决:

<script src="https://cdn.jsdelivr.net/npm/formdata-polyfill@3.0.20/formdata.min.js"></script>

或者打开链接,赋值里面的内容保存成js文件放到项目路径,直接引用本地即可

<script src="./my-script/formdata.min.js"></script>
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值