Я использую angular 5 и хочу перейти от компонента A к компоненту B. Но всякий раз, когда я перехожу к компоненту B, компонент возвращает все (вызывается ловушка ngOnInit), кроме представления. Представление загружается, только если я обновляю sh страницу.
Компонент A
@Component({
template: `
<div class="max-width">
<div id="fetching-iframe" class="iframe-container">
<button
(click)="navigateToB()">
Continue
</button>
</div>
</div>
`,
styleUrls: ['./iframe.component.scss'],
})
export class IFrameComponent {
ngOnInit(): void {
console.log('A loaded')
}
public navigateToB(): void {
this.router.navigateByUrl('/component-b');
}
}
Компонент B
@Component({
template: `
<div class="max-width">
<div id="fetching-iframe" class="iframe-container">
<body onload="document.test.submit();">
<form
action="https://example.com"
target="my-iframe"
method="post"
name="test"
>
<input
type="hidden"
name="payload"
value="test"
/>
</form>
<iframe name="my-iframe"></iframe>
</body>
</div>
</div>
`,
styleUrls: ['./iframe.component.scss'],
})
export class IFrameComponent {
ngOnInit(): void {
console.log('B loaded')
}
}
То, что я пытаюсь сделать в компоненте B, - это запрос HTTP POST внутри iframe, который возвращает внешнюю страницу . Я попытался проверить страницу, и я вижу на вкладке элементов, на странице есть код html, который я пишу в шаблоне компонента B (все тело, форма, тег ввода и т. Д. c есть), но это не Не выполняю HTTP-запрос POST, когда я проверяю вкладку «Сеть».
Проблема исчезнет, если я вручную обновлю sh страницу или вручную введу URL-адрес в браузере, представление загружается и запрашивает HTTP POST.