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的值怎么算的没有去深究了,最后还是选择的原生...

相关推荐
光影少年4 天前
AIGC + Taro / 小程序
小程序·aigc·taro
菜鸟una4 天前
【微信小程序+Taro 3+NutUI 3】input (nut-input) 、 textarea (nut-texteare)类型使用避坑
前端·vue.js·微信小程序·小程序·taro
GISer_Jing14 天前
一次编码,七端运行:Taro多端统一架构深度解析与电商实战
前端·aigc·taro
光影少年1 个月前
rn如何和原生进行通信,是单线程还是多线程,通信方式都有哪些
前端·react native·react.js·taro
杨进军1 个月前
模拟 Taro 实现编译多端样式文件
前端·taro
GISer_Jing1 个月前
Taro跨端开发实战:JX首页实现_Trae SOLO构建
前端·javascript·aigc·taro
GISer_Jing1 个月前
Taro打造电商项目实战
前端·javascript·人工智能·aigc·taro
浅箬2 个月前
Taro3的H5项目在Android、IOS 中因为兼容性问题导致的白屏问题
android·团队开发·taro
GISer_Jing2 个月前
Taro跨端开发实战:核心原理与关键差异解析
前端·javascript·taro
GISer_Jing2 个月前
深入拆解Taro框架多端适配原理
前端·javascript·taro