现在以下问题仅发生在 Safari 上。 Chrome、Opera、IE 都工作正常。 我已经尝试过:
function do(x){
$.ajax({url: "next.php",
type: "POST",
data: {'cand': x},
success: leave()});
}
function leave(){window.location = "next.php";}
这个:
$.post("next.php", {'cand': x});
window.location = "next.php";
还有上述的其他两种组合。我注意到,当我不离开页面时,ajax/post 请求都可以工作,但是当我离开页面时,它们就不起作用。我的意思是当我使用 window.location
命令时。例如,用户将离开页面,但发布请求将不起作用。再次强调,这种情况仅发生在 Safari 中。我面前没有 Safari 浏览器,所以我无法彻底测试它。
谁有线索可以告诉我发生了什么事吗?
最佳答案
如果您执行此操作:success:leave()
(如第一个示例中所示),那么您会立即评估leave
函数,并且位置的更改与 Ajax 调用。有些浏览器会完成 ajax 调用,有些则不会。
相反,请执行以下操作:成功:离开
。这将在 ajax 调用之后调用 leave
函数。
关于javascript - jQuery ajax/post 请求更改页面不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43836556/