我不知道如何获取Axios调用成功的响应并显示成功消息。
有一个名为"Change Workflow Order"的按钮,它有一个onClick函数。
<div style="display: flex"> <button class="btn btn-info change-workflow" onclick="changeWorkflowOrder()"> Change Workflow Order </button> <span style="color: green; margin-left: 5px;" id="alert_msg"> </span> </div>
这是onClick函数。changeWorkflowOrder函数运行一个Axios调用。
function changeWorkflowOrder() { const response = axios.post(js_site_url + '/sort-detail', $('#sortable').sortable("toArray"), { headers: { 'Content-Type': 'multipart/form-data' } }) }
我想捕获Axios调用的成功响应,如果Axios调用的响应成功,则在HTML span标签中显示成功消息。消息必须只显示4秒。4秒后,成功消息必须隐藏。
我尝试创建这个。这是我尝试的changeWorkflowOrder函数。
function changeWorkflowOrder() { const response = axios.post(js_site_url + '/sort-detail', $('#sortable').sortable("toArray"), { headers: { 'Content-Type': 'multipart/form-data' } }); response.then((result) => { $("#alert_msg").html(result.data.success ? "Success" : "Order change successfully"); clearTimeout(timeoutId); timeoutId = setTimeout(function() { $("#alert_msg").hide(); }, 4000); }); }
这段代码正确显示错误消息。但是4秒后显示错误消息后,"Order change successfully"消息没有隐藏,我认为Axios调用响应捕获部分不正确。
我如何捕获Axios调用的响应,并在HTML span标签中显示4秒的成功消息。
我建议首先创建一个axios客户端用于你的api/webservice:
然后重写你的onclick函数,并实现延迟,参考这个Stack Overflow回答: