Angular 如何修复';错误:无法匹配任何路由。URL段:';随便'';
在我的角度项目中,我的路线系统有问题。每次调用Angular 如何修复';错误:无法匹配任何路由。URL段:';随便'';,angular,angular-ui-router,angular6,Angular,Angular Ui Router,Angular6,在我的角度项目中,我的路线系统有问题。每次调用reset password/:token路由时,我都会收到此错误。 每次我呼叫此路线时,http://localhost:4200/reset-password?token=token_info,浏览器(谷歌浏览器)将我重定向到http://localhost:4200/reset-输入密码,然后返回此错误消息 core.js:1673 ERROR Error: Uncaught (in promise): Error: Cannot match
reset password/:token
路由时,我都会收到此错误。每次我呼叫此路线时,
http://localhost:4200/reset-password?token=token_info
,浏览器(谷歌浏览器)将我重定向到http://localhost:4200/reset-输入密码
,然后返回此错误消息
core.js:1673 ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'reset-password'
Error: Cannot match any routes. URL Segment: 'reset-password'
at ApplyRedirects.push../node_modules/@angular/router/fesm5/router.js.ApplyRedirects.noMatchError (router.js:1384)
at CatchSubscriber.selector (router.js:1365)
at CatchSubscriber.push../node_modules/rxjs/_esm5/internal/operators/catchError.js.CatchSubscriber.error (catchError.js:34)
at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80)
at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60)
at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80)
at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60)
at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80)
at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60)
at TapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/tap.js.TapSubscriber._error (tap.js:61)
at resolvePromise (zone.js:814)
at resolvePromise (zone.js:771)
at zone.js:873
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:3811)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
at drainMicroTaskQueue (zone.js:595)
你能帮我吗?谢谢。在
{path:'reset password/:token',…}
对象之前添加重置密码
作为路由。您的“reset password”路由需要一个令牌参数,
可能当您呼叫该路由时,您错过了它。您已经用token定义了“reset password/:token”,因此您需要通过该路由传递token
您必须通过该路由传递令牌,或者定义另一个不带令牌的路由。看起来您没有重置密码。路由?只有一个
reset password/:token
route?谢谢@DeborahK的回复。是的,我说的是带有参数“token”的道路。我更正了我的答案。谢谢@Dzhavat的回复。是的,我更正了我的答案。我想使用的路由是带有参数tokenCool的路由。然后http://localhost:4200/reset-密码?令牌=令牌信息
和http://localhost:4200/reset-密码/:令牌
不相同。您可以添加路由{path:'reset password'…}并使用params获取
token`或者您需要像这样发送令牌http://localhost:4200/reset-密码/令牌信息
在重置密码组件
组件中,您可以通过查看令牌信息
参数访问令牌。看看这个谢谢你的回复@Dzhavat。实际上,我的url的格式与声明的routethanks for response不兼容。我更正了我的答案。我想使用的路由是带有参数令牌的路由。我用令牌发送请求。谢谢回复。我更正了我的答案。我想使用的路由是带有参数令牌的路由。我用令牌发送请求。
const appRoutes: Routes = [{
path: '',
component: LoginLayoutComponent,
children: [
{ path: '', component: SigninComponent },
{
path: 'forgot-password',
component: ForgotPasswordComponent,
},
{
path: 'forgot-password/confirmation',
component: ForgotPasswordConfirmationComponent,
},
{
path: 'reset-password/:token',
component: ResetPasswordComponent,
},
{ path: 'signup', component: SignupComponent },
{ path: 'logout', component: LogoutComponent, canActivate: [
CanActivateViaAuthGuard
]
},
]
},