首先说明这个页面地址是实实存在的
说下我的场景,我某些场景要把当前页面地址及参数获取到,然后传递给下一个页面。所以我把当前页面地址及参数进行了base64字符串传递。下一个页面接收到后解析出来。解析出来的结果都跟传递的时候一模一样的,没有任何的区别。在我要跳转的地方我把接收到的值丢进去回来原来的来路后就出现 了fail page 'pages/member/index'
console.log(that.data.options.page);
console.log('/pages/member/index');
console.log(typeof that.data.options.page);
console.log(typeof '/pages/member/index');
let url = '/pages/index/index';
if (that.data.options.page) {
url = that.data.options.page;
}
wx.redirectTo({
url: url
});
如果我把url直接手工输入 字符串是没有任何跳转问题的。一旦我换成变量就把不到路径了!
解决方法
options.page = '/' + Base64.decode(options.page);
强制在前面加了个 '/' 通过参数带过来的/是有问题的,只有解析后再加。真恶心!
这是模拟单点登录的节奏啊
有时候用户走了几层了 你返回到第一层也不合理!
关键是为什么不在源头处限制登录
以前我是用户一进来 我就强制授权,现在不了,我已经改了。只有与用户中心有关的才授权。其它页面不授权!一进来强制授权体验感不好!
A
page: /pages/member/index
B
B页面处理跳转
执行结果:fail page "/pages/member/index
结果图片
测试了一下,变量方式传参,正常跳转,你贴下完整代码看看
console.log(JSON.parse(JSON.stringify(that.data.options.page)));
跳转之前打印下 是一样的吗?