Handling URIError: URI malformed with vue-router
Handling URIError: URI malformed with vue-router
我在我的网站上遇到了一个负面情况,有人在 URL 的末尾附加了 %
,在这种情况下我们得到了 URIError: URI malformed
。有时,页面会停止呈现。我正在使用 Vue-Router 进行路由,我尝试了 router.beforeResolve
和 router.beforeEach
方法,但它们没有被调用。我想做这样的事情来解决问题:
try {
decodeURI(uri)
next();
} catch(e) {
// If malformed URI error, don't go to URI, else next();
}
困惑的是我把这段代码放在哪里?在这种情况下,将调用哪个 Vue 路由器方法?
路由器代码与此类似:
const router = new VueRouter({
routes: [
ARoute,
BRoute,
],
});
如果不修改 vue-router
代码,您无能为力,因为解码是在那里进行的。 This issue 在 vue-router 的 Github repo 上可能与它有关。
我在我的网站上遇到了一个负面情况,有人在 URL 的末尾附加了 %
,在这种情况下我们得到了 URIError: URI malformed
。有时,页面会停止呈现。我正在使用 Vue-Router 进行路由,我尝试了 router.beforeResolve
和 router.beforeEach
方法,但它们没有被调用。我想做这样的事情来解决问题:
try {
decodeURI(uri)
next();
} catch(e) {
// If malformed URI error, don't go to URI, else next();
}
困惑的是我把这段代码放在哪里?在这种情况下,将调用哪个 Vue 路由器方法? 路由器代码与此类似:
const router = new VueRouter({
routes: [
ARoute,
BRoute,
],
});
如果不修改 vue-router
代码,您无能为力,因为解码是在那里进行的。 This issue 在 vue-router 的 Github repo 上可能与它有关。