taro h5 formData上传图片的坑-Required request part ‘file‘ is not present

描述:用formData上传图片

1、生成formData

javascript 复制代码
const formData = new FormData()
formData.append('file', data) // data是file
formData.append('xxx', 'xxx') // 添加其他参数

2、用taro.request请求

javascript 复制代码
Taro.request({
	url: 'xxxx',
	data: formData,
	header: {
		'Content-Type': 'multipart/form-data;'
	},
	method: 'POST',
})

结果:报错500

3、用原生请求

javascript 复制代码
let xmlhttp = new XMLHttpRequest()
xmlhttp.open('post', 'xxxx')
xmlhttp.setRequestHeader('token', 'xxx')
xmlhttp.onreadystatechange = function (res) {
  if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
    console.log(xmlhttp.response)
  }
}
xmlhttp.send(formData)

结果:成功


注意,并没有设置content-type, 但是请求自动添加了content-type

4、对比后发现

原生的比taro多了boundary, boundary是分割线, 那把这个boundary复制下行不行呢?
!!!是不行的

5、总结

网上很多资料显示,formData上传时不需要设置content-type, 而taro.request默认是设置的content-type=application/json, 就算手动设置了,也不会自动加boundary, 而这个boundary的值怎么算的没有去深究了,最后还是选择的原生...

相关推荐
少恭写代码1 天前
duxapp放弃了redux,在duxapp中局部、全局状态的实现方案
react native·taro·redux·duxapp
Engss7 天前
Taro React-Native Android apk 打包
android·react native·taro
少恭写代码12 天前
通过duxapp提供的基础方法、UI组件、全局样式,快速编写项目
react native·移动开发·taro·duxapp
Feather_7413 天前
taro微信小程序assets静态图片不被编译成base64
微信小程序·小程序·taro
hammer101014 天前
taro底部导航,Tabbar
前端·typescript·taro
那就可爱多一点点17 天前
Taro构建的H5页面路由切换返回上一页存在白屏页面过渡
前端·微信小程序·taro
雪球干死黄旭东19 天前
taro+taro-ui学习
学习·ui·taro
搬砖的前端22 天前
微信小程序:miniprogram-ci自动打包工具使用介绍以及支持配置环境变量、jekins打包、taro、uni-app三方工具
ci/cd·微信小程序·taro
Lanwarf-前端开发1 个月前
Taro 中 echarts 图表使用
前端·echarts·taro
少恭写代码1 个月前
duxui:基于Taro,兼容React Native、小程序、H5的多端UI库
react native·小程序·移动开发·taro·duxapp