我在Angular 4上工作,我有一个语言列表,每个列表旁边都有一个星号。只要用户点击星号,语言就会被添加到收藏夹中。
问题:我点击星号的语言似乎已添加到收藏夹列表中,但是当我刷新页面时,先前选择的收藏夹没有反映(对数据库的调用不会消失,更改不会反映到数据库(。
更大的问题:当我打开IE的开发工具并向收藏夹添加语言时,它会显示在收藏夹面板中,如果刷新页面,则先前选择的收藏夹也存在(调用数据库并将更改反映到数据库(。
因此,如果 IE 开发工具处于打开状态,则没有问题并且一切正常,当我关闭开发工具时,最喜欢的添加或删除列表不会出现在页面加载中。控制台中没有错误(除了SockJS reconnect
,我不知道这是什么,我们没有使用 SockJS(。我应该如何调试这个问题?关闭开发工具时会出现什么问题?
您必须阻止 GET 请求的缓存,Internet Explorer 会在您触发 GET A 请求时从缓存中获取数据。 您必须在标头中添加无缓存。
const apiHeaders = new HttpHeaders({ 'Content-Type': 'application/json',
'Cache-control': 'no-cache, no-store, must-revalidate',
'Pragma': 'no-cache',
'Expires': '-1'
});
...
return this.http.get(uri, { headers: apiHeaders})