Javascript $.post()不';如果有';它后面有一个re direct:window.location.href=
我有一个列表,当单击该列表中的元素时,我想在数据库中记录一些信息,因此我使用以下方法:Javascript $.post()不';如果有';它后面有一个re direct:window.location.href=,javascript,jquery,Javascript,Jquery,我有一个列表,当单击该列表中的元素时,我想在数据库中记录一些信息,因此我使用以下方法: <li class="item"><a href="javascript:addactivity()">Add activity</a></li> <script> function addactivity(){ $.post('update.php'); window.location.href = "http://www
<li class="item"><a href="javascript:addactivity()">Add activity</a></li>
<script>
function addactivity(){
$.post('update.php');
window.location.href = "http://www.mysite.com/page.php";
}
</script>
函数addactivity(){
$.post('update.php');
window.location.href=”http://www.mysite.com/page.php";
}
如果我在window.location.href=“”;数据库被更新,因为$.post('update.php');工作正常。如果我不在窗外发表评论。location.href=“”;数据库未更新,但可直接访问www.mysite.com
出于某种原因,添加window.location.href=“”;停止$.post('update.php');从跑步开始。是否仍有办法解决此问题?使用成功方法,直到post完成后再进行重定向
$.post('update.php', function(){
window.location.href = "http://www.mysite.com/page.php";
});
使用回调来管理这种情况:
function onSuccess() {
window.location.href = "http://www.mysite.com/page.php";
}
function onFailure() {
alert('An error has ocurred while updating database');
}
$.post('update.php').done(onSuccess).fail(onFailure);
阅读其他示例,了解其工作原理:
从jQuery1.5开始,jQuery的所有Ajax方法都返回
XMLHTTPRequest对象。此jQuery XHR对象,或“jqXHR,”
由$.get()返回,实现Promise接口,提供所有
承诺的属性、方法和行为(请参阅)
对象以获取更多信息)。jqXHR.done()(为了成功),
jqXHR.fail()(用于错误)和jqXHR.always()(用于完成,是否
成功或错误)方法采用函数参数,该参数在
请求终止
这涉及到$.get,但同样适用于$.post。使用$.post的成功回调。退房