链接跳转后,post请求还会发出来吗?

我想统计一个页面上某几个链接的点击率, 而且这几个链接的指向是其他人的网页。
我的做法是在链接click的时候post一个请求到后端记录,但是发现,有时候这个post并没有发到后端来。是不是因为页面跳转太快, post没有发出来?

有办法保证这个post到达后端吗?

阅读 5.4k
2 个回答

建议使用google搜索采用的信息收集方式
通过中间页面来做信息收集和重定向

不建议用异步请求 缺点有

  • 右键新标签打开的链接 复制链接地址这类访问将无法统计
  • 会忽略鼠标中键以及 ctrl+点击 而直接在当前窗口跳转
  • 前一个链接尚未跳转 而点了另链接的情况下 会跳转至最先返回统计callback的那个(和正常链接体验不一致)
event.preventDefault();

你应该用上面的阻止事件,把a标签的默认跳转先阻止掉,发送post请求,然后再用程序。window.location.href = '你的标签要跳转的地址'。这样子保证每次都跳转完成。大概就是下面的样子。

$('a').click(function(){
    event.preventDefault();
    $.ajax();
    window.location.href = $(this).attr('href');
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进