Страница пуста, если не перезагрузить страницу вручную - PullRequest
0 голосов
/ 18 июня 2020

Я использую 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...