【发布时间】:2019-08-30 01:06:17
【问题描述】:
我正在尝试以下操作:
当用户单击链接时,我想通过 ajax 更新数据库中特定表的特定列。但我仍然希望将用户重定向到链接的href="<url>"。
我在没有return false; 的情况下尝试了 jQuery,但是 ajax 不起作用。
我尝试使用return false;,但页面显然没有按照我的意愿重定向到该网址。
提前感谢您的帮助。
【问题讨论】:
我正在尝试以下操作:
当用户单击链接时,我想通过 ajax 更新数据库中特定表的特定列。但我仍然希望将用户重定向到链接的href="<url>"。
我在没有return false; 的情况下尝试了 jQuery,但是 ajax 不起作用。
我尝试使用return false;,但页面显然没有按照我的意愿重定向到该网址。
提前感谢您的帮助。
【问题讨论】:
进行 AJAX 调用,完成后设置 document.location。
$('a').click(function(e){
var href = this.href; // get href from link
e.preventDefault(); // don't follow the link
$.ajax({
url: '/path/to/site',
data: {some: data},
success: function(){
document.location = href; // redirect browser to link
}
});
});
【讨论】:
您需要自己序列化这些操作。在事件处理程序中,首先运行您的 AJAX 请求,然后从标记中查找 href 并使用位置重定向将客户端带到该 URL。
【讨论】:
将重定向代码放入成功回调中:
$.ajax({
...
success: function(){
$(location).attr('href',url); // You URL inserted
}
});
【讨论】:
$(location).attr('href',url);。似乎工作,但我更喜欢document.location = url;。它不需要调用 jQuery 的开销。