收藏
回答

fail page "/pages/member/index 已解决但恶心

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 工具 6.7.3 2.24

首先说明这个页面地址是实实存在的

说下我的场景,我某些场景要把当前页面地址及参数获取到,然后传递给下一个页面。所以我把当前页面地址及参数进行了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);


强制在前面加了个 '/' 通过参数带过来的/是有问题的,只有解析后再加。真恶心!

最后一次编辑于  2018-11-14
回答关注问题邀请回答
收藏

4 个回答

  • Wang
    Wang
    2018-11-14

    这是模拟单点登录的节奏啊

    2018-11-14
    有用
    回复 3
    • 阿白
      阿白
      2018-11-14

      有时候用户走了几层了 你返回到第一层也不合理!

      2018-11-14
      回复
    • Wang
      Wang
      2018-11-14回复阿白

      关键是为什么不在源头处限制登录

      2018-11-14
      回复
    • 阿白
      阿白
      2018-11-14回复Wang

      以前我是用户一进来 我就强制授权,现在不了,我已经改了。只有与用户中心有关的才授权。其它页面不授权!一进来强制授权体验感不好!

      2018-11-14
      回复
  • 阿白
    阿白
    2018-11-14

    A

    onLoad(options) {
    let isRegister = wx.getStorageSync('isRegister');
     if (!isRegister) {
    let url = Base64.encode(getUrl());
       wx.redirectTo({
    url: "/pages/authorize/index?page=" + url
    });
       return false;
     }
    this.getData();
    }

    page: /pages/member/index


    B

    onLoad(options) {
    if (!(JSON.stringify(options) === "{}")) {
    if (options.page) {
    options.page = Base64.decode(options.page);
         console.log(options.page);
       }
    this.setData({
    options: options
    });
     }
    },


    B页面处理跳转

    if (res.data.data.isRegister) {

    wx.setStorageSync('isRegister', true);

     //默认地址

     let url = '/pages/index/index';

     if (that.data.options.page) {

       //来路地址

       url = that.data.options.page;
     }
     wx.
    redirectTo({
       
    url: url
     })
    ;
    } else {
     wx.setNavigationBarTitle({
       
    title: '注册用户'
     });
     that.setData({
       
    display: true,
       openid: res.data.data.openid,
       token: res.data.data.token,
       nickname: nickname
     })
    }


    执行结果:fail page "/pages/member/index


    结果图片

    2018-11-14
    有用
    回复
  • 2018-11-14

    测试了一下,变量方式传参,正常跳转,你贴下完整代码看看

    2018-11-14
    有用
    回复
  • 卢霄霄
    卢霄霄
    2018-11-14

    console.log(JSON.parse(JSON.stringify(that.data.options.page)));

    跳转之前打印下 是一样的吗?


    2018-11-14
    有用
    回复
登录 后发表内容