美文网首页
解决小程序wx.request无法触发fail回调。

解决小程序wx.request无法触发fail回调。

作者: ChasenGao | 来源:发表于2018-08-18 15:08 被阅读596次

    今天在写一个需求如下:
    1、用户发送token到服务器认证
    2、服务器返回banner图片数据。
    3、如果失败,就显示默认占位图。

    按照我用jq写ajax的理解,那就是error()时 显示占位图,在wx小程序里是fail()方法。
    我在服务器上关闭了验证接口,此时会返回404,按道理来说会触发fail回调,可是,什么显示也没有。。

    百思不得其解,网上回答说 404 403等代码无法触发fail回调。于是我删除了fail回调,换了一种方法来解决。
    代码如下:

    //index.js
    //获取应用实例
    const app = getApp()
    Page({
      data: {
        token: '',
        bnrUrls: ''
      },
      onLoad() {
        var that = this;
        this.setData({
          token: wx.getStorageSync('yerlLocalToken') //获取localstorage中的token并设置
        });
        wx.request({
          url: app.globalApi.getIndexBanners,
          method:'POST',
          data:{
            token:this.data.token
          },success(res){
            //任何情况下,只要返回的数据不包含content字段,则显示默认占位图片
            if (!res.data.content){
              that.setData({
                bnrUrls: ['占位图地址']
              })
            }else{
              //将返回的图片列表赋值给bnrUrls
              that.setData({
                bnrUrls: res.data.content
              })
            }
          }
        });
      }
    })
    

    我把服务器返回的图片列表放到content中,无论成功或失败,都判断一下content是否存在,如果存在就正常显示,不存在就显示默认占位图。

    相关文章

      网友评论

          本文标题:解决小程序wx.request无法触发fail回调。

          本文链接:https://www.haomeiwen.com/subject/xusfiftx.html