Angular 总是重定向到索引页
Angular always redirecting to index page
我正在访问此 url http://localhost/calls
,但在 angular 期间将我的 url 更改加载到 http://localhost/
。 http headers
里面没有'Location'
路线追踪:
Router Event: NavigationStart
platform-browser.umd.js:1051 NavigationStart(id: 1, url: '/')
platform-browser.umd.js:1051 NavigationStart {id: 1, url: "/"}
core.umd.js:2957 Angular is running in the development mode. Call enableProdMode() to enable the production mode.
platform-browser.umd.js:1060 Router Event: RoutesRecognized
platform-browser.umd.js:1051 RoutesRecognized(id: 1, url: '/', urlAfterRedirects: '/', state: Route(url:'', path:''))
platform-browser.umd.js:1051 RoutesRecognized {id: 1, url: "/", urlAfterRedirects: "/", state: RouterStateSnapshot}
platform-browser.umd.js:1060 Router Event: GuardsCheckStart
platform-browser.umd.js:1051 GuardsCheckStart(id: 1, url: '/', urlAfterRedirects: '/', state: Route(url:'', path:''))
platform-browser.umd.js:1051 GuardsCheckStart {id: 1, url: "/", urlAfterRedirects: UrlTree, state: RouterStateSnapshot}
platform-browser.umd.js:1060 Router Event: GuardsCheckEnd
platform-browser.umd.js:1051 GuardsCheckEnd(id: 1, url: '/', urlAfterRedirects: '/', state: Route(url:'', path:''), shouldActivate: true)
platform-browser.umd.js:1051 GuardsCheckEnd {id: 1, url: "/", urlAfterRedirects: UrlTree, state: RouterStateSnapshot, shouldActivate: true}
platform-browser.umd.js:1060 Router Event: NavigationEnd
platform-browser.umd.js:1051 NavigationEnd(id: 1, url: '/', urlAfterRedirects: '/')
platform-browser.umd.js:1051 NavigationEnd {id: 1, url: "/", urlAfterRedirects: "/"}
请求的完整路线:
import { RouterModule, Routes } from '@angular/router'
import { CallOperatorAuthComponent } from './auth/call-operator-auth/call-operator-auth.component'
import { CallOperatorAuthGuard } from './auth/call-operator-auth/call-operator-auth.guard'
import { DashboardComponent } from './dashboard/dashboard.component
import { AppComponent } from './app.component'
// TODO: try later implement lazy loading again
const appRoutes: Routes = [
{path: 'login', component: CallOperatorAuthComponent},
{
path: 'calls',
component: CallsComponent,
canActivate: [ CallOperatorAuthGuard ]
},
]
export const routing = RouterModule.forRoot(appRoutes,
{ enableTracing: true } )
Angular 4.4.3
编辑 这是我的 canActivate:
canActivate() {
if (this.localStorage.get('user')) {
return true
}
this.router.navigate([ '/login' ]) return false;
}
我找到原因了。我注入服务并在其构造函数中重定向到“/”。
谢谢大家的帮助。
我正在访问此 url http://localhost/calls
,但在 angular 期间将我的 url 更改加载到 http://localhost/
。 http headers
路线追踪:
Router Event: NavigationStart
platform-browser.umd.js:1051 NavigationStart(id: 1, url: '/')
platform-browser.umd.js:1051 NavigationStart {id: 1, url: "/"}
core.umd.js:2957 Angular is running in the development mode. Call enableProdMode() to enable the production mode.
platform-browser.umd.js:1060 Router Event: RoutesRecognized
platform-browser.umd.js:1051 RoutesRecognized(id: 1, url: '/', urlAfterRedirects: '/', state: Route(url:'', path:''))
platform-browser.umd.js:1051 RoutesRecognized {id: 1, url: "/", urlAfterRedirects: "/", state: RouterStateSnapshot}
platform-browser.umd.js:1060 Router Event: GuardsCheckStart
platform-browser.umd.js:1051 GuardsCheckStart(id: 1, url: '/', urlAfterRedirects: '/', state: Route(url:'', path:''))
platform-browser.umd.js:1051 GuardsCheckStart {id: 1, url: "/", urlAfterRedirects: UrlTree, state: RouterStateSnapshot}
platform-browser.umd.js:1060 Router Event: GuardsCheckEnd
platform-browser.umd.js:1051 GuardsCheckEnd(id: 1, url: '/', urlAfterRedirects: '/', state: Route(url:'', path:''), shouldActivate: true)
platform-browser.umd.js:1051 GuardsCheckEnd {id: 1, url: "/", urlAfterRedirects: UrlTree, state: RouterStateSnapshot, shouldActivate: true}
platform-browser.umd.js:1060 Router Event: NavigationEnd
platform-browser.umd.js:1051 NavigationEnd(id: 1, url: '/', urlAfterRedirects: '/')
platform-browser.umd.js:1051 NavigationEnd {id: 1, url: "/", urlAfterRedirects: "/"}
请求的完整路线:
import { RouterModule, Routes } from '@angular/router'
import { CallOperatorAuthComponent } from './auth/call-operator-auth/call-operator-auth.component'
import { CallOperatorAuthGuard } from './auth/call-operator-auth/call-operator-auth.guard'
import { DashboardComponent } from './dashboard/dashboard.component
import { AppComponent } from './app.component'
// TODO: try later implement lazy loading again
const appRoutes: Routes = [
{path: 'login', component: CallOperatorAuthComponent},
{
path: 'calls',
component: CallsComponent,
canActivate: [ CallOperatorAuthGuard ]
},
]
export const routing = RouterModule.forRoot(appRoutes,
{ enableTracing: true } )
Angular 4.4.3
编辑 这是我的 canActivate:
canActivate() {
if (this.localStorage.get('user')) {
return true
}
this.router.navigate([ '/login' ]) return false;
}
我找到原因了。我注入服务并在其构造函数中重定向到“/”。 谢谢大家的帮助。