小程序前端生成二维码是base64转图片后页面不显示

小程序前端生成二维码是base64转图片后页面不显示

getUserInviteBackground() {
                this.tui.request("/api/userInviteBackground", "post", '', false, true, false).then(res => {
                    console.log(res);
                    this.image = res.data[0].image
                }).catch(res => {
                
                })
            },
             generateQRCode(access_token) {
                  let link = uni.getStorageSync('link')
                  let scene='t/qrcode01*link/'+ link
                  let that = this
                  wx.request({
                    url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=' + access_token,
                    method: 'POST',
                    header: {
                      'content-type': 'application/json;charset=utf-8'
                    },
                    data: {
                      scene:scene,
                      page: 'pages/index/index',
                      width: 280
                    },
                    responseType: 'arraybuffer',
                    success: (res) => {
                        console.log(res);
                      let src = wx.arrayBufferToBase64(res.data);
                      that.src2 = 'data:image/png;base64,' + src;
                      console.log(that.src2);
                    },
                    fail: (err) => {
                      console.error(err)
                    }
                  })
                },

img

你这儿都不对啊,你获取的不是aes加密后的结果么,这不是base64的图片格式啊

img

同意楼上,把图中aes加密的部分解密后替换上去 应该就OK了

img

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7670340
  • 除此之外, 这篇博客: 前端中的二进制中的 Base64 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • Base64是一组相似的二进制到文本(binary-to-text)的编码规则,使得二进制数据在解释成 radix-64 的表现形式后能够用 ASCII 字符串的格式表示出来
    1. 两个常用的方法
    let encodedData = window.btoa("Hello, world"); // "SGVsbG8sIHdvcmxk"
    let decodedData = window.atob(encodedData);    // "Hello, world"