收藏
评论

前端获取小程序码 接口B

最近在做小程序,需要用到小程序码,自己的项目使用java后台请求微信接口,生成小程序码,存到服务器,然后返回前端图片路径

然而发现好多同学在用前端获取小程序码,我就也来试试.

其中比较恶心的是,文档中没有写明返回的结果是个什么类型,正常的是个IO流,报错的话,那就是字符串了,目前我只是遇到了这两个情况.

废话不说了....搞起


下面是大家最开始直接写的代码 ,然后发现是一堆乱码.......

   wx.request({

     url: '', //接口B

     data: {

     },

     method:'POST',

     header: {

       'content-type': 'application/json' // 默认值

     },

     success: function (res) {

        console.log(res.data);

     }

   })  



有乱码说明接口调用是成功,只不过是返回的数据 ,没有正确的处理 ,下面贴上正常的代码


   wx.request({

     url: ', //接口B

     data: {

     },

     method:'POST',

     responseType:'arraybuffer',

     header: {

       'content-type': 'application/json' // 默认值

     },

     success: function (res) {

       var base64 = wx.arrayBufferToBase64(res.data);

       that.setData({

         codeurl: "data:image/png;base64," + base64

       })

     }

   })  



responseType  :这个参数 一般不太会注意....然后特意去翻了一遍文档.,发现默认是text,还有一个arraybuffer,二话不说,直接代码里写上responseType:'arraybuffer',   arraybuffer 这东西,就是个二进制数组.然后用 wx.arrayBufferToBase64 转化成base64的数据,重新给放小程序码位置的  src  属性赋值,  大功告成.


参考了一些文档  也有社区的一些

贴一下,帮助大家理解吧

http://www.cnblogs.com/znsongshu/p/9404805.html

https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=1538536322&docid=00044a939fc4b875f00759e7554404


希望能帮助各位,也怕我自己忘了,毕竟我是写后台的,哈哈哈哈









最后一次编辑于  2018-08-14  (未经腾讯允许,不得转载)
复制链接收藏赞 1

15 个评论

  • (๑`・ᴗ・´๑)
    (๑`・ᴗ・´๑)
    2018-08-15

    只能测试用一下,线上用不了

    2018-08-15
    赞同
    回复 11
    • 流年、飞羽
      流年、飞羽
      2018-08-15

      是说这个只能在测试环境中成功     在线上行不通么

      2018-08-15
      赞同
      回复
    • (๑`・ᴗ・´๑)
      (๑`・ᴗ・´๑)
      2018-08-15回复流年、飞羽

      你调用的接口是

      https://api.weixin.qq.com/

      开头的,这个接口没法设置为请求域名,所以你校验域名的时候会报错,在线上版本不能使用

      2018-08-15
      赞同
      回复
    • 卢霄霄
      卢霄霄
      2018-08-15回复流年、飞羽


      2018-08-15
      赞同 11
      回复
    • 流年、飞羽
      流年、飞羽
      2018-08-15回复卢霄霄

      多谢多谢   又涨经验了

      2018-08-15
      赞同
      回复
    • 流年、飞羽
      流年、飞羽
      2018-08-15回复(๑`・ᴗ・´๑)

      多谢多谢   又涨经验了

      2018-08-15
      赞同
      回复
    查看更多(6)
  • wfei
    wfei
    2018-08-15

    返回的 data:ArrayBuffer {}  是空值,你的返回是这样的嘛?

    2018-08-15
    赞同
    回复 1
    • 流年、飞羽
      流年、飞羽
      2018-08-16

      先用第一段代码 打印出来返回的data  看看是什么吧

      2018-08-16
      赞同
      回复
  • 沙皮狗的忧伤
    沙皮狗的忧伤
    2018-08-28

    返回的 data:ArrayBuffer {}  是空值,

    不加responseType:'arraybuffer',返回的是二进制乱码呢

    2018-08-28
    赞同
    回复