jquery 使用 ajax 更新数据后重新加载页面

jquery reload page after using ajax to update data

我正在尝试找到一种在完成 AJAX 更新后重新加载页面的方法。

我的基本代码是:

updateEdit = function() {
    $('#editSection').on('click', '#Changes', function() {  
        /*set var here*/
        $.ajaxSetup({ 
            data: {
                var1: 1,
                var2: 2
            }
        })
        ajaxUpdate();   
    });
}

ajaxUpdate = function() {
    $.ajax({
        type: 'GET',
        url: 'update.php',
        data: {},
        success: function(data) {
            alert(data);
            centerItem('#savedBox');
        },
        error: function(jqxhr) {
            alert(jqxhr.responseText);
        }
    })  
}

到目前为止一切顺利。我现在需要暂停 1 秒钟,然后重新加载页面。环顾四周表明我需要使用 setTimeout(location.reload, 1000);

所以我加入了

complete: function() {
    setTimeout(location.reload, 1000);  
}

$.ajaxsetup() 但这似乎什么也没做。 然后我将它添加到主 ajaxUpdate() 函数中(不理想,因为我不希望它在每次 ajaxUpdate 时都触发),因此我得到了一个 Uncaught TypeError: Illegal invocation 错误。 (并且没有页面重新加载)。 我做错了什么?

重新加载是一种方法。通过函数调用它

setTimeout(function(){location.reload()}, 1000);

希望对您有所帮助。

setTimeout 函数的语法不正确

请使用这个:

setTimeout(function(){location.reload();}, 1000);
updateEdit = function() {
        ...

        // Will wait 1 sec and then reload the page
        var waitCallback = function () {
           setTimeout(function() { location.reload(); }, 1000);
        };

        ajaxUpdate(waitCallback);
    });
}

ajaxUpdate = function(cb) {
    $.get('update.php',
       function(data) {
          alert(data);
          centerItem('#savedBox');

          cb();
        })
        .fail(function(jqxhr) {
            alert(jqxhr.responseText);
        });
};