离开页面时发送axios请求

时间:2018-07-28 08:48:01

标签: javascript axios dom-events

我想在文档$api->getFromResponse('resData')['nameserver1']事件发生时使用axios发送一个http请求,我想知道是否可以知道axios是否已成功发送,因为该请求是异步的?还是有什么办法可以使请求同步?我在下面写示例代码。

pagehide

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以仅返回“确定”响应(状态码200),表明您已成功发送请求。

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

axios.get('/targetUrl', params);

这将发送您想要的信号。如果您想等待响应,则可以使用promises。如果服务器返回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());
}
}    
}