Angular - AuthGuard перенаправляет Iframe - PullRequest
0 голосов
/ 19 ноября 2018

Я использую 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 Ответ

0 голосов
/ 19 ноября 2018

Вы должны использовать квадратные скобки вокруг src, чтобы привязать к нему значение url, в противном случае вы назначаете строку «url» для src. Также используйте ngIf в iframe, чтобы показывать его только при заполнении URL. Затем вам нужно продезинфицировать URL. Подробнее на https://stackoverflow.com/a/38269951/10632970.

...