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

相关推荐
Dragon Wu11 天前
Taro v4.2.0 scss使用“@/xxx“的配置方法
前端·小程序·taro·scss
朱良16 天前
Taro小程序生成分享海报解决方案
taro
代码不加糖17 天前
从零手写简易 Taro:20 行 JSX 如何变成小程序?(硬核实战)
小程序·taro
lichenyang45325 天前
从零到一:用 Taro + React 搭建数据采集小程序
react.js·小程序·taro
今天不要写bug1 个月前
Taro小程序微信、支付宝双端实现二维码图片生成
微信·小程序·taro
喵了几个咪1 个月前
Headless 架构优势:内容与展示解耦,一套 API 打通全端生态
vue.js·架构·golang·cms·react·taro·headless
一只小白菜1 个月前
Taro 4 + 支付宝小程序:Vite 编译报错 chunk.type undefined 的终极解决方案
小程序·taro
AI前端老薛2 个月前
Taro 小程序如何优雅地分包
小程序·taro
zfyljx2 个月前
Taro+react input框在文字中间插入光标会跳到末尾问题
javascript·react.js·taro
yixiancheng2 个月前
安装taro与配置钉钉
taro