【问题标题】:How to reload webpage AFTER executing an ajax post request?执行ajax发布请求后如何重新加载网页?
【发布时间】:2020-09-03 11:54:29
【问题描述】:

我目前正在为我的个人网站实现多语言支持(我也在完全重建 atm),我需要在 AJAX 发布请求之后重新加载页面。我将首选语言保存在会话中,当更改它时,它当然会更新,我需要重新加载页面以显示正确的翻译。问题在于,使用方法时,有时会在更改会话中的首选语言之前重新加载页面,这当然会导致 AJAX 发布请求不被执行。

Javascript:

function setLang(lang) {
    $.post("languages/setLang.php", {"preflang":lang});
    location.reload();
}

PHP:

<?php
    session_start();
    $_SESSION['PREFERRED_LANGUAGE'] = $_POST['preflang'];
?>

【问题讨论】:

  • 等待 ASYNC 操作完成...又名:从成功处理程序执行重定向
  • 这个解决方案对我的大脑来说太明显了......它现在当然可以了,谢谢!
  • 我猜现代方式将是一个承诺......唉,我对前端的东西不是很好;)

标签: javascript php html ajax


【解决方案1】:

如何使用 $.ajax 发送 ajax

JS:

function setLang(lang) {
$.ajax({
          url:"languages/setLang.php",
          type:'POST',
          data:{"preflang":lang},
          dataType:'text',

          success:function(response){
            if(response=='true'){
              location.reload();
            }
          }
        });
}

PHP

    <?php
    session_start();
    $_SESSION['PREFERRED_LANGUAGE'] = $_POST['preflang'];
    echo 'true';
    ?>

这样成功函数只会在 ajax 调用从服务器执行代码后返回响应并且您可以重新加载页面时运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    相关资源
    最近更新 更多