我的问题是,当我调用一个侦听事件onBeforeUnload()的函数时,我想发布一个数据。问题是我的请求是未经授权的。我需要在某个地方添加我的持有者,但我不知道如何添加。
下面是我的实际代码:
@HostListener('window:beforeunload', ['$event'])
onBeforeUnload(): void {
navigator.sendbeacon(`${localhost:8080/apiRest}`, infoIWantToSent);
}现在,请求发送401:unhautorized,这是正常的,因为我不传输任何载体。
发布于 2019-05-16 21:16:42
我找到了这个解决方案:
@HostListener('window:beforeunload', ['$event'])
onBeforeUnload(): void {
fetch('url', {
keepalive: true,
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`,
},
body: JSON.stringify(infoIWantToSent),
});
}显然,如果我们必须使用令牌连接,我们不能使用navigator.sendbeacon() https://w3c.github.io/beacon/#sec-sendBeacon-method它在几乎所有的情况下都有效,但当我关闭包含我的页面的iframe时就不行。
发布于 2019-05-14 22:01:09
试试这个:
let headers = {
Authorization: 'Bearer ' + token
};
let blob = new Blob([JSON.stringify(infoIWantToSent)], headers);
navigator.sendBeacon('url', blob);https://stackoverflow.com/questions/56131973
复制相似问题