【微信小程序】携带参数跳转,参数中 = 部分参数丢失?数据传输过程中丢失/不全,遇 ‘=‘ 和 ‘?‘ 被截取

【问题】微信小程序在测试时,获取到的数组数据中,参数id是字符串,末尾有“ = ”,但是在两个页面之间传参后,末尾的“ = ” 消失了?导致接口报参数错误?那是不是“ % ”也会丢失?

小程序中页面之间传参经常会遇见数据被截取,造成数据不全导致错误
实际上是因为 小程序中传参遇见 = 或 ?会自动截取

情况一:

》数组数据

》在另一个页面打印:

 

 

 

 情况二:

<navigator url='../listen/listen?img={{a}}'>....</navigator>
但是a值中有两个“==”,==和后面的字符串都丢失了。

例如:原本a的值:https://abcd==_ksdfsfds,但是到第二个页面就变成了https://abcd

【解决方案一:】

通过wxs脚本,在wxml通过replace函数替换字符串,“==”替换成“%3D%3D”

wxs

var replace = function (ele) {
  return ele.replace('==', '%3D%3D');
}
module.exports = {
  replace: replace,
};
wxml

<wxs src="../../utils/tools.wxs" module="tools" />



 

 

【解决方案二】:

使用urlencode

使用方法:

A页面参数传至B页面,即A使用编码方法对参数进行编码,传输过程中则使用编码后的参数,B页面接收使用解码方法获得参数

具体方法:

//param 要进行传输的参数
//编码方法   
encodeURIComponent(param)
//解码方法
decodeURIComponent(param)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值