更改位置之前执行ajax功能,状态已取消

时间:2019-03-27 03:33:08

标签: javascript jquery ajax

假设单击按钮时进行一些页面重定向:

git init

问题是<div onClick="clickButton"></div> function clickButton(href) { // here is an http post request, has no callback or then or done function sendSomeRequest() location.href = 'https://www.google.com' } 的请求会在我看到网络时被取消,有没有比trackAjax更好的方法了?

我的setTimeout也没有回调或类似的功能,可以将其视为事件跟踪功能。

1 个答案:

答案 0 :(得分:0)

最好的解决方案是编辑sendSomeRequest以返回$.post()创建的jqXHR对象。

function sendSomeRequest() {
  return $.post('user/track')
}

然后您可以将您的重定向链接到它

sendSomeRequest().then(() => {
  location.href = 'https://www.google.com'
})

如果您无法或不愿意编辑sendSomeRequest(),则可以添加一个全局"AJAX complete" handler

$(document).ajaxComplete(() => {
  location.href = 'https://www.google.com'
})
sendSomeRequest()