Handling URIError: URI malformed with vue-router

Handling URIError: URI malformed with vue-router

我在我的网站上遇到了一个负面情况,有人在 URL 的末尾附加了 %,在这种情况下我们得到了 URIError: URI malformed。有时,页面会停止呈现。我正在使用 Vue-Router 进行路由,我尝试了 router.beforeResolverouter.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 上可能与它有关。