-
Notifications
You must be signed in to change notification settings - Fork 596
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: 修复页面刷新子路由参数丢失的问题 #664
base: master
Are you sure you want to change the base?
Conversation
当开启路由同步的时候,子页面有带参数,刷新浏览器子应用获取不到参数
补充一下 完整的url 上的参数 |
为什么会有两个 ?pcsd 和 ?tid,看你上面 完整的url 没有 tid 这个参数呢 |
第一个pcsd 是 子应用的名称,是无界处理上去的。第二个是我的nginx代理的路径,访问子应用的静态资源。 |
我们这边也有这个问题,出现在第一次打开子应用时,如果url带参数的话会丢失 |
现在的问题是我没有办法复现这个参数丢失的问题,也就没有办法确定这个办法是不是有用,对于url带参数丢失的问题,这个时候浏览器的url 都是什么,可以举一个例子我这边看一下吗 |
刷新前:?pcsd=%2Fpcsd%2F%23%2Fq-product%2Fproduct-healthcare%2Fobs%2Fdetail%3Ftid%3D4fcb679252964adf88550f56a57a9150%26qmpProductId%3Ddfeb30fe45234460a5495baf35065b30 |
经排查,这个问题是由于 vue-router 路由重定向导致。一旦重定向后,就相当于对 url 解码了两次。 |
使用 vue3 router,配置个重定向路由,就会复现了。 |
当开启路由同步的时候,子页面有带参数,刷新浏览器子应用获取不到参数
npm run test
通过详细描述
开启路由同步之后,子应用携带query参数跳转到自己的路由时,页面刷新,子应用无法获取到正常的参数。
是因为一顿给子应用iframe赋值之后,某些参数莫名的被解码了,导致 按照等于号分割的时候,忽略了后面的参数,如下图: