uni-app redirectTo在跳转时自动在url前面加上“/pages/index”,导致跳转失败

uni-app redirectTo在跳转时自动在url前面加上“/pages/index”,导致跳转失败

这是失败回调

```
{"errMsg":"redirectTo:fail page/pages/index/pages/call/call"}
```
7 回复

methods: {
async getDataById(params) {
await apiUtil.getData({
“code”: params
}).then((result) => {
console.log(result);
if (result == undefined || result == null) {
uni.redirectTo({
url: “pages/call/call?query=” + encodeURIComponent(JSON.stringify(result)),
fail(err) {
console.log(err);
},
success() {
console.log("");
}
})
} else {
uni.reLaunch({
url: “./pages/index/index”
})
}
}, (error) => {
uni.reLaunch({
url: “./pages/error/error”
})
})
}
}

更多关于uni-app redirectTo在跳转时自动在url前面加上“/pages/index”,导致跳转失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html


pages/call/call?query=" 前面加上 / 如果不加,就是你出现的这个问题 ,路径补全了

路径错误 ,应该使用 /pages/call/call 或者 …/call/call

使用的是/pages/call/call路径,但是运行后系统会自定加 /pages/index在前面,导致跳转失败,上面是打印的错误信息。我在在app.vue里面使用的跳转,试过网上的延迟也不行。

回复 GoodAr: 贴一下代码

回复 DCloud_UNI_HT: 代码在下面贴出来了,getDataById 是在app.vue 的onLaunch里面调用的。这种情况只出现在异步调用里

根据你提供的错误信息,redirectTo 跳转失败是因为 URL 路径被错误地拼接了 /pages/index。这通常是由于以下原因导致的:

  1. 路径格式问题:在 redirectTo 中使用的路径可能没有以 / 开头,或者路径格式不正确。例如,如果你尝试跳转到 pages/call/call,但实际路径是 /pages/call/call,系统可能会错误地拼接基础路径。

  2. 基础路径配置:检查 pages.json 中的页面路径配置,确保没有在基础路径中重复添加 /pages/index。有时,如果配置了全局基础路径或默认页面,可能会导致路径拼接错误。

  3. 代码中的路径处理:检查调用 redirectTo 的代码,确保路径字符串没有多余的空格或错误的前缀。例如:

    // 错误示例:路径前可能有多余的字符或错误拼接
    uni.redirectTo({
      url: 'pages/call/call' // 缺少斜杠可能导致系统自动添加基础路径
    });
    

    正确的写法应该是:

    uni.redirectTo({
      url: '/pages/call/call' // 以斜杠开头,确保路径正确
    });
回到顶部