wx.uploadFile回调函数接收到后端传过来的值是字符串而不是json数据

最近的一个微信小程序项目需要上传图片,自然就要用到wx.uploadFile()。

最开始能够正常发送请求,并能够通过res.data.code获取到后端传过来的code字段值。

后来不知道怎么的就莫名其妙获取不到,一直是undefined。

经过差不多两天的研究.......发现

在success回调函数中res.data收到的结果竟然不是json格式而是一段字符串!!!

那么要取到其中的code字段就很容易了

使用split把字符串分割成数组再取到就行了

比如我后端传过来的结果是:

data: "{"code":0,"message":"success","data":null}"

可以看出res.data确实是一段字符串......

解决办法有两个:

1、把字符串分割成数组

let aa = data.data
let bb = aa.split(",")[0]
let cc = bb.split(":")[1]

这样就得到了想要的code的值(String类型)

2、转换为json格式

let resp = JSON.parse(res.data)
// rest code...

当然,出现的问题不仅如此,还有就是在控制台可以看到Provisional headers are shown。

很遗憾的是,试了网上各种方法,都没有解决,包括:

ssl证书问题

上线就正常

请求改为"POST"(不是默认就是post吗??)

PS:因为只要我的图片能够上传,能够接收到后端传过来的数据就行,所以没有管Provisional headers are shown的问题。

 

你可能感兴趣的:(javascript,小程序)