Javascript 在共享主机上使用jquery重新加载与刷新页面

Javascript 在共享主机上使用jquery重新加载与刷新页面,javascript,php,jquery,ajax,caching,Javascript,Php,Jquery,Ajax,Caching,我正在使用codeigniter和jquery。我正在使用ajax向codeigniter函数发送一些信息,以执行db操作,从而更新页面 $.ajax({ type: "POST", url: BASE_URL+"Update/update", data:{ i : searchIDs, m : message },

我正在使用codeigniter和jquery。我正在使用ajax向codeigniter函数发送一些信息,以执行db操作,从而更新页面

                  $.ajax({
                        type: "POST",
                        url: BASE_URL+"Update/update",
                        data:{ i : searchIDs, m : message },
                        dataType: 'json',
                        success: function(data) {
                            console.log(data);                              

                        },
                        error: function(data) {
                            console.log(data);
                        },
                        complete: function() {
                            alert("REFRESHING..");

                         window.location.href = "pan_controller/reply";
                        }
                });

操作完成后,我想重新加载页面。这在我的WAMP上正常工作。但是,当我部署到共享主机时,通常必须手动重新加载页面(使用浏览器中的重新加载按钮——上面的屏幕截图)。我在firebug中没有看到错误。我尝试了多种修复方法,但最近开始怀疑这是否是共享主机服务器上的缓存问题。如果是这样的话,有没有更好的方法使用jquery重新加载,而不仅仅是重定向,以避免共享主机上的缓存?

您是否确定在页面未重新加载的情况下,
complete
函数正在运行?如果是这样,那么我认为你是对的,这是一个缓存问题

您可以尝试在
window.location.href
值的末尾添加一个timestamp参数,使其每次都是唯一的,并避免任何缓存问题,不过更好的方法是将正确的标题与响应一起发送回去,以便浏览器知道不缓存该页面

window.location.href = "pan_controller/reply?t=" + (new Date().getTime());

您可以使用ajaxComplete()方法,或者在ajax success上添加“window.location.href=”pan\u controller/reply“;”而不是在ajax complete上。ajaxComplete()与我上面提到的不同吗(我不太了解jquery)。我尝试了第二种方法,但没有成功。此事件的行为与完整事件相同,每次Ajax请求完成时都会触发。使用location.reload(true);要重新加载页面,我尝试了window.location.reload(true)=“pan_controller/reply”;代码盒不工作,我可以在浏览器窗口中看到“刷新…”,所以我假设complete正在运行。你能告诉我更多关于用jquery发送正确的头的信息吗,我想你的意思是“没有缓存”?-比尔:谢谢,这确实有效。你解决了一个困扰我好几天的问题!很高兴修复了它,这里有一篇关于缓存的好文章:谢谢,我来看看。