我一直在努力编写代码,在关闭选项卡窗口时可靠地发出POST请求.Navigator.sendBeacon
似乎正是我需要的(我只要求它适用于谷歌Chrome).
$(global).bind('unload', function () { let body = { UserEmail: appState.user.email, Job: { Id: appState.jobId }, Timestamp: '/Date(' + new Date().getTime() + ')/', EventOrigin: 'PdfReviewClient', Event: 'JobClosed' }; let headers = { Authorization: `JWT ${authenticationState.token}`, 'Content-Type': 'application/json; charset=utf8' }; let blob = new Blob([JSON.stringify(body)], headers); navigator.sendBeacon(configuration.rootApiUrl + 'jobevents', blob); });
我的灯塔包括自定义标题,这就是我创建Blob的原因.
但是,这个请求似乎没有发生.由于窗口关闭,这尤其难以调试.所以问题是,为什么我的灯塔不发送?