目前再做一个支付宝小程序的项目,使用web-view嵌套h5。
做上传图片功能时发现在ios下的formData传值有问题,安卓下就是好的。因为web-view嵌套h5不支持上传图片功能。ios给参数做了一些封装,所以后端接收不到。然后我就可以利用axios 的transformRequest
配置项。原本调用接口传参方式,由传递formdata格式,改为直接传递普通数据,在transformRequest中组装formdata参数。
async takePicFiles(file: any) {
if (file != null) {
try {
const res = await ocrImg({
shopId: getShopId(),
img: file,
});
} catch (e) {}
}
}
export const ocrImg = (data:any)=>{
return http.request({
url: httpStr + '/output/invoiceOcr/ocrImg',
method: 'post',
data,
transformRequest: [function (data: any) {
const formdata = new FormData()
formdata.append("shopId", data.shopId);
formdata.append("img",data.img);
return formdata
}],
type: 'application/x-www-form-urlencoded',
})
}
问题解决了