【发布时间】:2016-07-24 15:15:24
【问题描述】:
我正在开发一个 Angular 应用程序。在注销时,我们删除了一些 cookie,然后我们想从服务器(而不是浏览器缓存)重新加载页面,包括所有 JS 脚本。
服务器有一些身份验证,如果没有 cookie,将重定向到登录表单。
按照 MDN 文档,要在不使用缓存的情况下重新加载页面,我使用了 window.location.reload(forceReload); 和 forceReload=true。但它不起作用。该页面已重新加载,但来自缓存而不是来自服务器。
$http({
method: 'GET',
url: api.baseUrl + '/logout',
}).then(function() {
// Should reload the current page, without using the cache
window.location.reload(true);
return;
});
编辑
上面的代码是正确的,它确实在不使用缓存的情况下重新加载了页面。
问题出在我们服务器端的身份验证上。我会删除这个问题,但 Stack Overflow 不鼓励删除有答案的问题。
【问题讨论】:
-
您还应该告诉您的服务器不要缓存这些网址...
-
实际上 window.location.replace 不会强制 IE 重新加载 html 模板,如果它们是从服务器请求的(如果你没有将它们打包到 js 中)。在这种情况下,唯一的方法是请求不同的网址,例如 template.html?timestamp=123232323
标签: javascript angularjs caching reload