我在URL中使用可能具有斜杠/的标记,如果它有斜杠,则重定向到主页。这个问题的解决方案是什么?
这是我的路线:
const routes: Routes = [{path: 'confirm-email/:userIdCode', component:
ConfirmEmailComponent}]
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
这是我的电子邮件确认组件:
export class ConfirmEmailComponent implements OnInit {
constructor(private route: ActivatedRoute, private signupService:
SignUpService) {}
private url: string;
private userId: any;
private code: any;
ngOnInit(): void {
this.route.params.subscribe(params => {
this.url = params['userIdCode'];
const splitted = this.url.split('|');
this.userId = splitted[0];
this.code = splitted[1];
this.signupService.sendConfirmEmailData(this.userId).subscribe( result =>
console.log(result));
});
}
}
谢谢。
答案 0 :(得分:2)
将斜杠传递给url时需要对斜杠进行编码。例如,您的令牌是12/34
。这应编码为12%2F34
。所以最终你的网址是/confirm-email/12%2F34
。现在当角度拉入参数时(例如使用this.activatedRoute.paramMap),它将自动解码它并为您提供参数12/34
这是一个stack blitz演示。