Angular - AuthGuard перенаправляет Iframe
Я реализую iFrame в моем угловом приложении. Когда я даю URL src прямо в HTML, приложение работает нормально и загружает запрошенный пользовательский интерфейс. Но когда я получаю URL-адрес src из бэкэнда и передаю его как переменную, 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>
DefectsManagementComponent.ts:
export class DefectsManagementComponent implements OnInit {
url: string;
constructor(private service: SolutionInstanceService) {
}
ngOnInit() {
this.service.fetchSolutionByName("DEFECT_MANAGEMENT").subscribe(data =>{
this.url = data["solutionURL"];
});
}
}
AppRoutingModule.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
1 ответ
Вы должны использовать квадратные скобки вокруг src, чтобы привязать к нему значение url, иначе вы назначаете строку "url" для src. Также используйте ngIf в iframe, чтобы показывать его только при заполнении URL. Затем вам нужно продезинфицировать URL. Подробнее на /questions/22874604/nebezopasnoe-znachenie-ispolzuemoe-v-kontekste-url-resursa-s-angular-2/22874619#22874619.