【问题】微信小程序在测试时,获取到的数组数据中,参数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)