卸载前调用时无法发布httpClient请求

时间:2019-03-14 10:13:13

标签: angular typescript rest

我的问题是,当我调用一个函数监听事件onBeforeUnload()时,我想使用httpClient请求发布数据。问题是我的请求没有发送。这里的代码

  @HostListener('window:beforeunload', ['$event'])
  onBeforeUnload(): void {
     this._httpClient.post(`${localhost:8080/apiRest}`, infoIWantToSent).subscribe();
  }

我不知道这是否是遵循的好方法。预先感谢您的回答。

2 个答案:

答案 0 :(得分:1)

为什么不使用ngOnDestroy?

export class NewComponent implements OnDestroy{
    ngOnDestroy() {
            this._httpClient.post(${localhost:8080/apiRest}, infoIWantToSent).subscribe();
    }
}

答案 1 :(得分:1)

谢谢您的回答。 OnDestroy在我的情况下不起作用(从不调用)。我通过使用找到解决方案:

@HostListener('window:beforeunload', ['$event']) onBeforeUnload(): void { const xhr = new XMLHttpRequest(); xhr.open('POST', $ {localhost:8080 / apiRest , false); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.setRequestHeader('Authorization', 'Bearer ' + token); return xhr.send(JSON.stringify(infoIWantToSent)); } 好像在工作该令牌是我的应用程序的连接令牌。