Angular-AuthGuard正在重定向Iframe



我正在我的angular应用程序中实现iFrame。当我直接在html中提供src-url时,应用程序运行良好,并加载了请求的UI。但是,当我从后端获取src-url并将其作为变量auth-guard传递时,就是将url重定向到登录页面。如何解决此问题?

DefectsManagementComponent.html:

<div class="container-fluid dtep-style dtep-min-height-569px-minus-56px">
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="form-group"></div>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="form-group">
<iframe id="defects" class="col-lg-12 col-md-12 col-sm-12 col-xs-12" title="Defects Management" src="url">
</iframe>
</div>
</div>
</div>
</div>

缺陷管理组件.ts:

export class DefectsManagementComponent implements OnInit {
url: string;
constructor(private service: SolutionInstanceService) {
}
ngOnInit() {
this.service.fetchSolutionByName("DEFECT_MANAGEMENT").subscribe(data =>{
this.url = data["solutionURL"];
});
}
}

应用程序路由模块.ts:

const routes: Routes = [
{
path: "login",
component: LoginComponent
},
{
path: "home",
canActivate: [AuthGuardGuard],
component: HomeComponent
},
{
path: "defects",
component: DefectsManagementComponent
},
{
path: "",
redirectTo: "login",
pathMatch: "full"
},
{
path: "**",
redirectTo: "login",
pathMatch: "full"
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule 

您应该在src周围使用方括号将url的值绑定到它,否则您将字符串"url"分配给src。也可以在iframe上使用ngIf,只在填充url时显示它。然后你需要对url进行清理。更多信息,请访问https://stackoverflow.com/a/38269951/10632970。

最新更新