我有一个记录API,该API在链接之前执行。链接会将用户重定向到其他地方,我正在执行fetch,然后再重定向用户。所以脚本现在是这样的:
loggingAPI({
timestamp: moment()
})
window.location = "http://.......com"
记录API只是普通的提取包装器。
但是,服务器目前未收到API请求。我认为这是因为它甚至没有机会将请求发送到api。
那么我可以等待请求发送但不等待响应吗?
最佳答案
使用sendBeacon非常简单
没有看到您的功能loggingAPI
的代码,以下是最佳猜测
注意:sendBeacon
使用POST请求,因此可能需要修改服务器端以接受这样的请求-尽管,鉴于您的loggingAPI
正在发送数据,我想它已经在使用POST
-因此可能成为非发行
在代码中的某处,为Windows设置一个卸载事件
window.addEventListener("unload", () => {
sendBeacon("same url as loggingAPI", JSON.parse({timestamp: moment()}));
}, false);
那当你
window.location = "http://.......com"
loggingAPI
函数会为您调用编辑:对不起,我没有充分充实代码,我错过了几步!