JQuery:在链接被关注之前执行一个post

JQuery: Perform a post before a link is followed

本文关键字:执行 post 一个 链接 JQuery      更新时间:2023-09-26

当我的网站上有人点击链接时,我需要异步发布到服务器。我尝试了下面的代码,但它似乎没有在服务器上完成我想要的任务。我认为问题是它在发生某些事情之前就已经跟踪了链接。实际上,我不需要等待服务器的响应,我只需要它向它发送呼叫。有人能帮我吗?也许在调用链接之前如何延迟跟踪链接,或者应该注意使用$.post吗?

$("#item").click(function (ev) {
    $.post(link_to_something);
});
<a id="item" href="www.google.com">Link</a>

第一件事是通过从click处理程序返回false来取消链接的默认操作。这将为AJAX请求的完成留出足够的时间。当它完成时,在成功回调中,你可以重定向到链接指向的任何地方:

$("#item").click(function (ev) {
    var self = this;
    $.post(link_to_something, function() {
        window.location.href = self.href;
    });
    return false;
});

你必须检查响应以确定帖子是否成功,然后你应该继续。

$("#item").click(function (e) {
    e.preventDefault();
    $.post(link_to_something, function() {
        window.location = $(this).attr('href');
    });
});