admin管理员组

文章数量:1130349

项目场景:

移动端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/npm/formdata-polyfill@3.0.20/formdata.min.js"></script>

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

<script src="./my-script/formdata.min.js"></script>

项目场景:

移动端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/npm/formdata-polyfill@3.0.20/formdata.min.js"></script>

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

<script src="./my-script/formdata.min.js"></script>

本文标签: 属性对象系统兼容性FormDataappendData