偶现,天啦噜,一直困惑了很久的bug终于找到原因了。示例代码如下
wx.request({
sucess:function(res){
if(res.statusCode==200 && res.data.status==200){
//do something
}else {
console.log(res.statusCode); //错误代码是console.log(res.data.status);
}
})
①首先我想记录一下 res.statusCode和res.data.res的区别。
res.statusCode 代表的是 这次网络请求,是否成功。代表的是该次网络请求的返回码。
res.data.status 代表的 对应服务接口 返回数据中的 status(名字不固定,可以叫任何名字)
②在写错误代码的时候,res.data.status字段一直返回undefined,找了好久找不到原因。
很尴尬的是,这是请求成功里面的回调,却没有返回字段,而且服务器日志里也没收到这条请求。
后来,还是小程序的日志中,找到了错误原因。是JSON解析时候出现了错误,有些字段,服务器需要的是int型,而我传的是String类型。
解决方法:parse做个转型。转成服务器需要的数据类型,即可。
var c="222";
console.log(parseInt(c));//应该输出222