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

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

页面展示:

代码实现:

: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, '');

相关推荐
树上有只程序猿12 分钟前
2026低代码选型指南,主流低代码开发平台排名出炉
前端·后端
橙某人20 分钟前
LogicFlow 小地图性能优化:从「实时克隆」到「占位缩略块」!🚀
前端·javascript·vue.js
高端章鱼哥33 分钟前
为什么说用OpenClaw对打工人来说“不划算”
前端·后端
大脸怪33 分钟前
告别 F12!前端开发者必备:一键管理 localStorage / Cookie / SessionStorage 神器
前端·后端·浏览器
Mr_Mao40 分钟前
我受够了混乱的 API 代码,所以我写了个框架
前端·api
小徐_233341 分钟前
向日葵 x AI:把远程控制封装成 MCP,让 AI 替我远程控制设备
前端·人工智能
boooooooom41 分钟前
讲清 Proxy + effect + track/trigger 流程
javascript·vue.js·面试
冴羽43 分钟前
来自顶级大佬 TypeScript 之父的 7 个启示
前端·typescript
leafyyuki1 小时前
在 Vue 项目中玩转 FullCalendar:从零搭建可交互的事件日历
前端·javascript·vue.js
决斗小饼干1 小时前
低代码平台工作流引擎设计:从状态机到智能流转的技术演进
前端·低代码·工作流引擎