navigateto / redirectTo 和参数解析, 不遵守URL 规范 ?
发布于 5 年前 作者 xhuang 4354 次浏览 来自 官方Issues

https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.redirectTo.html

/pages/demo/demopage?<param-name>=<param-value>
假如: param-name 和 param-value 应该采用 encodeUrlComponent() 来 编码, 
同样的对于  onload  的参数, 也应该采用 decodeUrlComponent() 来解码

比如: url = /pages/index/index?a=1&b=2

编码后应该是 /pages/demo/demopage?url=%2Fpages%2Findex%2Findex%3Fa%3D1%26b%3D2

但是 onload 应该得到 { “url”: “/pages/index/index?a=1&b=2” }

实际上得到的是 %2Fpages%2Findex%2Findex%3Fa%3D1%26b%3D2

这就尴尬了,因为如果不编码或者 不采用 component 编码 里面 & = 都不会被编码,

这意味着, 得到参数{ url: “/pages/index/index?a=1”, b = 2 }

2 回复

确实是这样的,url后面的参数会当做字符串类型处理,你参数里面带链接,所带的链接里面又包含参数,这当然是傻傻分不清的。你可以尝试在参数所带的链接里使用不同的符号代表&和?,自己封装解析方法

回到顶部