1.问题
在微信小程序中,有时需要传递字符串
?
或者&
,英文地址栏中的&
和?
符号的会被解析的,但是可以用其他标志性的字符,也是在地址栏中不会用不到的字符代替 比如@
如果直接传递
代码语言:javascript复制a页面
var data = {a:'?34ew',b:'&34242'};
var objStr = JSON.stringify(data);
wx.navigateTo({
url: `/pages/info/info?data=${objStr}`
});
代码语言:javascript复制b页面
const data = JSON.parse(options.data);
// 执行该步骤会报错
2. 解决办法
代码语言:javascript复制我们用在A页面中 需要携带一个json对象去B页面时
a页面
var data = {a:'?34ew',b:'&34242'};
var objStr = JSON.stringify(data);
objStr = objStr.replace(/?/g, '@@111');
objStr = objStr.replace(/&/g, '@@222');
wx.navigateTo({
url: `/pages/info/info?data=${objStr}`
});
代码语言:javascript复制b页面
let dataStr = options.data.replace(/@@111/g, '?');
dataStr = dataStr.replace(/@@222/g, '&');
const data = JSON.parse(dataStr);