Javascript 离开页面时发送axios请求

Javascript 离开页面时发送axios请求,javascript,axios,dom-events,Javascript,Axios,Dom Events,当文档pagehide事件发生时,我想使用axios发送http请求,因为请求是异步的,我想知道是否可以知道axios已成功发送?或者有没有办法使请求同步?我在下面编写示例代码 document.addEventListener("pagehide", function () { sendRequest(); }) sendRequest() { axios.get('/targetUrl', params).then(); } 我在某种程度上解决了这个问题。。。如果可能的话

当文档
pagehide
事件发生时,我想使用axios发送http请求,因为请求是异步的,我想知道是否可以知道axios已成功发送?或者有没有办法使请求同步?我在下面编写示例代码

document.addEventListener("pagehide", function () {
    sendRequest();
})

sendRequest() {
    axios.get('/targetUrl', params).then();
}

我在某种程度上解决了这个问题。。。如果可能的话,我使用
sendBeacon
,对于一些不支持beacon API的浏览器,我使用同步请求。

您只需返回一个“Ok”响应(状态代码200),它将指示您成功发送了请求

我不确定同步请求,但您可以使用:

axios.get('/targetUrl', params);
这将发送你想要的信号。如果你想等待回复,那么你可以使用承诺。如果服务器返回4xx代码响应,axios将抛出错误,您可以在try-catch块中使用axios来处理是否存在错误

async function sendRequest() {
    try {
await axios.get('/targetUrl', params);
}
catch (Error)
{
if(Error.IsAxios) // This will return true if error is due to axios
{
alert('Request was not successful');
}
else
{
console.error(Error.toString());
}
}    
}