AJAX提交数据至PHP后,如何在success函数中重新加载目标URL?window.location.reload()无效
解决AJAX成功后无法重新加载目标PHP页面的问题
看起来你遇到的是个很常见的小坑——AJAX提交数据成功后,想用window.location.reload()重新加载course.php但没效果,我来帮你理清楚原因和解决方案:
核心原因
window.location.reload()的作用是刷新当前浏览器正在显示的页面,而不是你AJAX请求的目标PHP页面。举个例子:如果当前你在index.php页面发起AJAX请求到course.php,那reload()只会刷新index.php,自然看不到course.php的更新内容。
具体解决方案
根据你的实际场景,选下面对应的方法就行:
1. 直接跳转到目标PHP页面(最常用)
如果你的需求是跳转到course.php页面查看更新后的内容,直接用window.location.href指定目标URL即可,这会让浏览器重新请求该页面的最新数据:
success: function(){ window.location.href = '../app/course.php'; }
2. 当前页面就是course.php?解决缓存问题
如果当前页面本身就是course.php,但reload()后没看到更新,大概率是浏览器缓存了旧页面。这时候可以强制浏览器从服务器重新拉取:
success: function(){ // 传递true参数,强制绕过缓存刷新 window.location.reload(true); }
3. 极端情况:彻底避免缓存(可选)
如果上面的方法还是有缓存问题,可以在URL后加一个唯一的随机参数(比如时间戳),让浏览器认为这是一个全新的请求:
success: function(){ // 用时间戳生成唯一参数,确保请求不被缓存 var targetUrl = '../app/course.php?' + new Date().getTime(); window.location.href = targetUrl; }
额外提醒
如果你的course.php页面需要依赖某些URL参数(比如之前的编辑ID),记得在跳转的时候把必要的参数带上,比如:
success: function(){ window.location.href = '../app/course.php?editingid=' + rowId; }
内容的提问来源于stack exchange,提问作者J.Pei
相关产品推荐
相关产品推荐

