javascript - jQuery ajax/post 请求更改页面不起作用

标签 javascript php jquery ajax

现在以下问题仅发生在 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/

相关文章:

javascript - 是否可以暂停 Protractor 运行时并检查本地变量?

javascript - 无法将 Javascript 对象绑定(bind)到操作 Controller

javascript - 如何在没有 html select 的情况下制作下拉菜单

javascript - 如何通过 if 语句获取要更改的值

jquery - 通过单击添加类时淡入 1000

javascript - 包装函数包围

php - 从 PHP 扩展中获取运行脚本的名称

php - 比打印表格的多个 echo 语句更好的方法?

php - PDO 准备好的语句中的 foreach

javascript - 如何使用 bootstrap 显示模式对话框