关于微信小程序的wx.request执行后sucess和fail的问题
做过小程序的朋友们应该都知道,小程序中调用ajax的命令是wx.request,其有两个回调,一个是success,一个是fail,那么什么情况下会走success,什么情况下会走fail呢?
大多数人可能认为,success就是我成功请求到数据了,也就是请求返回的状态码是2XX,而返回4XX,5XX肯定是出错了,出错了就走fail呗。
那可就错啦,其实只要你的wx.request成功发出了请求,无论返回什么http状态码,都会走success。
说到这很多同学会问这也太不合理了吧,这样success和fail有什么意义? 答案是这样的设定是非常合理的,当我们遇到断网,域名解析有问题,或者尤其是我们去调用restful api时,可能会在url格式,参数类型上出些问题,这些情况下才会调用到fail。
反之4xx、5xx 等 response的异常状态不会进入fail回调,我们需要在success回调中检查statusCode,根据http状态码的不同去做相应的逻辑判断。