Javascript jQuery ajax/post请求,页面更改无效
现在,下面的问题只发生在Safari上。铬合金、歌剧(都很好用)。 我试过:Javascript jQuery ajax/post请求,页面更改无效,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,现在,下面的问题只发生在Safari上。铬合金、歌剧(都很好用)。 我试过: function do(x){ $.ajax({url: "next.php", type: "POST", data: {'cand': x}, success: leave()}); } function leave(){window.location = "next.php";} 这: 以及上述的另外两种组合。我注意到,当我不离开页面时,ajax/post请求都能工作,但当我离开
function do(x){
$.ajax({url: "next.php",
type: "POST",
data: {'cand': x},
success: leave()});
}
function leave(){window.location = "next.php";}
这:
以及上述的另外两种组合。我注意到,当我不离开页面时,ajax/post请求都能工作,但当我离开页面时,它们却不能工作。我的意思是当我使用window.location
命令时。与中一样,用户将离开页面,但post请求将不起作用。同样,这只发生在狩猎中。我的面前没有Safari浏览器,所以我无法彻底测试它
任何有任何线索的人都可以告诉我发生了什么事吗?如果这样做:
成功:离开()
(如第一个示例中所示),则立即评估离开
函数,位置的更改与ajax调用同时发生。有些浏览器将完成ajax调用,有些则不会
相反,请这样做:
success:leave
。这将在ajax调用后调用leave
函数。如果执行此操作:success:leave()
(如第一个示例所示),则立即评估leave
函数,并且位置的更改与ajax调用同时发生。有些浏览器将完成ajax调用,有些则不会
相反,请这样做:
success:leave
。这将在ajax调用后调用离开函数。您可以尝试以下操作,因为这里只在PHP执行完成后调用函数()。在您的例子中,回调可能是在Ajax完成之前执行的。在这种情况下,您可以使用一些变通方法,并使用setTimeout()在离开前等待一小段时间
$.post('next.php', {cand: x}, function() {
// Callback function: called after php script is completed
// setTimeout waits 500ms before leaving
setTimeout(function(){
leave();
}, 500);
})
您可以尝试以下操作,因为这里只在PHP执行完成后调用函数()。在您的例子中,回调可能是在Ajax完成之前执行的。在这种情况下,您可以使用一些变通方法,并使用setTimeout()在离开前等待一小段时间
$.post('next.php', {cand: x}, function() {
// Callback function: called after php script is completed
// setTimeout waits 500ms before leaving
setTimeout(function(){
leave();
}, 500);
})