我正在尝试使用 jQuery 向某些日志记录服务发出 ajax 请求,该请求是通过单击页面上的链接启动的,但有时我在开发工具中看到该请求的状态为“已取消”。
- 是因为比赛条件吗?单击链接会卸载页面,如果请求-响应周期尚未完成,它会被取消吗?
- 如果是这样,取消是什么意思?我知道我没有收到响应,我不在乎(无论如何,响应中没有发送有价值的信息),但是我可以指望请求将其发送到服务器吗?
谢谢
我正在尝试使用 jQuery 向某些日志记录服务发出 ajax 请求,该请求是通过单击页面上的链接启动的,但有时我在开发工具中看到该请求的状态为“已取消”。
谢谢
是的,它将被取消。如果用户单击链接,则链接 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>