当我网站上有人点击链接时,我需要向服务器发送异步帖子。我尝试了下面的代码,但它似乎没有在我想要的服务器上执行任务。我认为问题在于它会在某些事情发生之前跟踪链接。我实际上不需要等待来自服务器的响应,我只需要将它发送给它。谁能帮我吗?也许如何在调用之前延迟关注链接,或者我应该注意使用$ .post?
$("#item").click(function (ev) {
$.post(link_to_something);
});
<a id="item" href="www.google.com">Link</a>
答案 0 :(得分:3)
第一件事是通过从click
处理程序返回false来取消链接的默认操作。这将为AJAX请求留出足够的时间来完成。完成后,在成功回调中,您可以重定向到链接所指向的位置:
$("#item").click(function (ev) {
var self = this;
$.post(link_to_something, function() {
window.location.href = self.href;
});
return false;
});
答案 1 :(得分:0)
您必须检查回复以确定帖子是否成功,然后您应该继续。
$("#item").click(function (e) {
e.preventDefault();
$.post(link_to_something, function() {
window.location = $(this).attr('href');
});
});