【问题标题】:Jquery refresh the page after successjquery成功后刷新页面
【发布时间】:2017-02-27 08:20:24
【问题描述】:

ajax 调用成功后如何刷新页面。即使我输入了window.location.reload(true),页面也不会刷新。它只显示回显消息但不刷新它

$("#update-btn").click(function() {
    var token = document.getElementById('tokenAmount').value;; //Place the token here
    var master = currentUserID;
    var lastUser = lastNode.info.id;
    $.ajax({
        type : "POST",
        url : "update.php", 
        data : {'master': master,
            'token' : token,
            'user_id': lastUser 
        },
        success : function(data) {
            alert(data);
            window.location.reload(true);
        }
    }); 
});

update.php

$master=$_POST['master'];
$user = $_POST['user_id'];
$token = $_POST['token'];

if(condition)
{
    $result = $MySQLi_CON->query($secondToken);
    if($result == false)
        $response['msg'] = "Not Enough";
    else
    {    
        $response['msg'] = "Successful";
    }
}

else
{
    $response['msg'] = "Not enough";
}
echo json_encode($response['msg']);

【问题讨论】:

  • 为此状态使用标志会话
  • 我在“update.php”的第 15 行看到了 }。请检查一下
  • 警报(数据);您在警报中收到了哪些数据?
  • 回显消息提醒
  • 我的意思是它会提示“成功”或“不够”?

标签: javascript php jquery ajax


【解决方案1】:

请尝试以下代码:-

location.reload();

已编辑:-

success : function(data) {
            alert(data);
            location.reload();
        }

其他方式:-

location.reload()
history.go(0)
location.href = location.href
location.href = location.pathname
location.replace(location.pathname)
location.reload(false)

请查看以下链接:- 还有 534 种其他方法可以使用 JavaScript 重新加载页面:-

http://www.phpied.com/files/location-location/location-location.html

【讨论】:

  • 以上都行不通。它似乎没有重新加载页面
  • location.reloadwindow.location.reload 没有区别。
【解决方案2】:

.ajaxStop() 回调在所有 AJAX 调用完成时执行。这是放置处理程序的最佳位置。

$(document).ajaxStop(function(){
    window.location.reload();
});

来源来自here

【讨论】:

  • 我应该在哪里查询?
【解决方案3】:

除非您在 alert() 上单击 Ok,否则不会执行下一条语句。 所以请改用 console.log(data)。

success : function(data) {
                console.log(data);
                window.location.href=window.location.href;
            }

【讨论】:

  • 你能不能把你的数据输出放在console.log(data)而不是alert()中;
  • 表示成功但也不刷新
  • 是的,应该。问题出在 alert() 框上。
【解决方案4】:

试试这个:

location.reload(true);

【讨论】:

  • 试试这个 window.location.href=window.location.href;
  • 好像没有重新加载页面
  • 通常“试试这个”的答案根本没有帮助。尝试解释为什么这会改进 OPs 代码,或者是解决他首先遇到问题的原因。
【解决方案5】:

在您的 ajax 成功回调中执行以下操作:

success: function(response){
                setTimeout(function(){
                   location.reload()
                }, 5000);
    }

因为你想在 5 秒后重新加载页面,那么你需要有 答案中建议的超时。

【讨论】:

  • 在您的 ajax 成功回调中执行以下操作:success: function(response){ setTimeout(function(){ location.reload() }, 5000);由于您想在 5 秒后重新加载页面,因此您需要按照答案中的建议设置超时。
  • 请编辑到帖子中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 2018-01-24
  • 1970-01-01
相关资源
最近更新 更多