Angular 标记中的斜杠不能在4的url中使用
在angular 4中,为了确认电子邮件,我在url中使用了可能有斜杠的标记,如果有斜杠,它会重定向到主页。这个问题的解决办法是什么 这是我的路线:Angular 标记中的斜杠不能在4的url中使用,angular,routing,Angular,Routing,在angular 4中,为了确认电子邮件,我在url中使用了可能有斜杠的标记,如果有斜杠,它会重定向到主页。这个问题的解决办法是什么 这是我的路线: const routes: Routes = [{path: 'confirm-email/:userIdCode', component: ConfirmEmailComponent}] @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] })
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));
});
}
}
谢谢。将斜杠传递到url时,需要对其进行编码。例如,假设您的令牌是
12/34
。应将其编码为12%2F34
。因此,最终您的url是/确认电子邮件/12%2F34
。现在,当angular拉入参数(例如使用this.activatedRoute.paramMap)时,它将自动解码并提供参数12/34
这是一个演示程序。在将斜杠传递到url时,需要对其进行编码。例如,假设您的令牌是
12/34
。应将其编码为12%2F34
。因此,最终您的url是/确认电子邮件/12%2F34
。现在,当angular拉入参数(例如使用this.activatedRoute.paramMap)时,它将自动解码并提供参数12/34
这是一个演示。从令牌中删除斜杠您是指在服务器中?从令牌中删除斜杠您是指在服务器中?感谢您的演示,但我不明白如何对令牌进行编码,因为我不知道它是什么。在您的演示中,您分配了令牌12/34,但当我不知道它是什么时,我如何才能写入应用程序模块“rediredTo:”?@AmirGh在真实世界的应用程序中,您不会让通配符路由(
***
)指向确认电子邮件路由。它会指向某种404页面。谢谢你的演示,但有一个问题我不知道如何对令牌进行编码,我不知道它是什么。在您的演示中,您分配了令牌12/34,但当我不知道它是什么时,我如何才能写入应用程序模块“rediredTo:”?@AmirGh在真实世界的应用程序中,您不会让通配符路由(***
)指向确认电子邮件路由。它会指向某种404页面。