【问题标题】:Angular 7 - how to send HTTP call before browser closeAngular 7 - 如何在浏览器关闭之前发送 HTTP 调用
【发布时间】:2019-07-03 19:10:11
【问题描述】:

我试图在浏览器关闭之前发送一个 POST HTTP 请求。

基本上,我试图触发用户关闭页面的操作,但在关闭之前调用并没有退出应用程序。

我的印象是,这对于普通的 HTTP 请求是不可能的,因为您必须订阅 HTTP 请求。

我尝试了以下解决方案:Angular 2 - Execute code when closing window

这对我不起作用,因为我不是在做简单的 GET。这是我到目前为止所得到的。

component.ts

@HostListener('window:beforeunload', ['$event'])
  beforeunloadHandler($event) {
    this.eventsService.sendEvent(this.form.value).subscribe(() => {
      console.log("Made it");
    });
  }

service.ts

sendEvent(userData): Observable<any> {
    return this.http.post<any>(this.url, userData,
      {
        headers: new HttpHeaders({
          "Content-Type": "application/json"
        })
      })
  }

有没有办法像上述解决方案一样利用 XMLHttpRequest() ?对于这样的解决方案,还有哪些其他选择?

感谢任何帮助。

【问题讨论】:

标签: angular typescript http xmlhttprequest


【解决方案1】:

我面临同样的问题,因为当页面被用户导航离开或关闭时,Chrome 现在在页面关闭期间不允许同步 XHR。

https://www.chromestatus.com/feature/4664843055398912

我到处搜索,发现同步调用只是解决方案,但如何?因为这种类型的调用已被弃用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多