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

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

页面展示:

代码实现:

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

相关推荐
爱丽_几秒前
Vue3 响应式系统:`ref`/`reactive`/`watchEffect` 的工作方式与最佳实践
前端·vue.js
~无忧花开~2 分钟前
React元素渲染:核心概念全解析
开发语言·前端·javascript·react.js
harrain2 分钟前
antv x6graph使用经验
前端·antv·x6
开开心心就好2 分钟前
免费无广告的礼金记账本,安卓应用
java·前端·ubuntu·edge·pdf·负载均衡·语音识别
qq_283720057 分钟前
nestjs实战(六):诺依Nest.js + MySQL 项目改造为兼容达梦8数据库详细教程
javascript·数据库·mysql·达梦·nest.js·诺依
marsh020614 分钟前
14 openclaw模板引擎使用:高效渲染动态内容
java·前端·spring·ai·编程·技术
Mr数据杨15 分钟前
【通用Vue】学生管理模块通用功能
javascript·vue.js·ecmascript
前端小菜鸟也有人起16 分钟前
vue中is的作用和用法
前端·javascript·vue.js
m0_5027249516 分钟前
vue3在线预览excel表格
javascript·vue.js·excel
Never_Satisfied18 分钟前
将web服务绑定在 1024 以下的端口上
前端·编辑器·vim