微信小程序请求接口返回的二维码(图片),本地工具和真机测试都能显示,上线之后不显示问题

请求后端接口返回的图片:

页面展示:

代码实现:

:show-menu-by-longpress="true" 是长按保存图片

base64Code 是转为base64的地址

html 复制代码
<image class="code" :src="base64Code" alt="" :show-menu-by-longpress="true" />

BASE_URL 是拼接接口地址的

javascript 复制代码
const base64Code = ref('');
onLoad(() => {
  //route.value.query.scene是扫描二维码后跳转链接传过来的参数(二维码携带链接是后端处理的),也就是id名称(因为我这个是扫描二维码还是跳到当前这个页面的,而后端传过来的参数名和我上个页面跳转过来传的参数名不一样)
  //route.value.query.id是上个页面跳转传过来的参数
  const id = route.value.query.id || route.value.query.scene;
  uni.request({
    url: BASE_URL + '/api/Product/GetCode?id=' + id,
    responseType: 'arraybuffer',
    success: (res: any) => {
      base64Code.value =
        'data:image/png;base64,' + uni.arrayBufferToBase64(res.data);
    },
    fail: (err) => {
      console.log(err);
    },
  });
});

这样写的话好像本地和真机调试是可以出来的,但到体验版和正式版上就是空白了,经过测试,把转成base64后的地址中的换行清除一下就可以了;

base64Code.value =

'data:image/png;base64,' + uni.arrayBufferToBase64(res.data).replace(/[\r\n]/g, '');

相关推荐
感性的程序员小王9 分钟前
HTTPS页面请求HTTP接口失败?一文讲透Mixed Content
前端·后端
用户6000718191026 分钟前
【翻译】我竟渐渐迷上了生成器的设计巧思
前端
随逸17728 分钟前
《吃透防抖与节流:从原理到实战,彻底解决高频事件性能问题》
javascript
Wect29 分钟前
LeetCode 104. 二叉树的最大深度:解题思路+代码解析
前端·算法·typescript
千寻girling31 分钟前
面试官 : “ 请说一下 JS 的常见的数组 和 字符串方法有哪些 ? ”
前端·javascript·面试
Wect33 分钟前
LeetCode 100. 相同的树:两种解法(递归+迭代)详解
前端·算法·typescript
不会敲代码134 分钟前
面试必考:如何优雅地将列表转换为树形结构?
javascript·算法·面试
用户57573033462436 分钟前
深入理解 Promise:从单线程到异步流程控制的终极指南
javascript
我是伪码农36 分钟前
Vue 大事件管理系统
前端·javascript·vue.js
无巧不成书021836 分钟前
KMP适配鸿蒙开发实战|从0到1搭建可运行工程
javascript·华为·harmonyos·kmp