请求已取消 - 这是什么以及为什么?

时间:2018-02-04 14:03:13

标签: jquery ajax request request-response

我正在尝试使用jQuery向某些日志服务发出ajax请求,通过单击页面上的链接启动请求,但有时我在开发工具中看到请求的状态为“已取消”。

  1. 是因为竞争条件吗?点击链接可以卸载页面,如果请求 - 响应周期尚未完成,它会被取消吗?
  2. 如果是这样,那是什么意思,取消了?我知道我没有收到回复,我也不在乎(无论如何都没有在该回复中发送任何有价值的信息),但我可以依靠请求通过服务器吗?
  3. 谢谢

1 个答案:

答案 0 :(得分:0)

是的,它会被取消。如果用户单击链接,则链接URL加载已启动。当URL响应第一个字节时,当前页面上的所有ajax请求将立即取消并将移动到URL。

如果要确保日志,则应使用javascript取消默认链接点击事件,并记录日志,并在记录完成后移至URL。

<a href="http://example.com" id="link1">Some Link</a>

<script>
$('#link1').on('click', function (e) {
  e.preventDefault();
  $.get('/path/to/logging', function () {
    // move to the URL after logging
    location.href = this.href;
  });
});
</script>