2

我在 Angular 4 上工作,我有一个语言列表,每个列表旁边都有一个星号。一旦用户点击星号,该语言就会被添加到收藏夹中。

问题:我单击星号的语言似乎已添加到收藏夹列表中,但是当我刷新页面时,之前选择的收藏夹没有反映出来(对数据库的调用不会发生,更改不会反映到数据库中)。

更大的问题:当我打开 IE 的开发工具并将语言添加到收藏夹时,它会显示在收藏夹面板中,如果刷新页面,则之前选择的收藏夹也存在(调用数据库并将更改反映到数据库) .

因此,如果 IE 开发工具已打开,则没有问题并且一切正常,当我关闭开发工具时,收藏夹添加或删除的列表不会出现在页面加载中。控制台中没有错误(除了SockJS reconnect我不知道这是什么,我们没有使用 SockJS)。我应该如何调试这个问题?关闭开发工具时会出现什么问题?

4

1 回答 1

0

您必须阻止获取请求的缓存,当您触发获取请求时,Internet Explorer 从缓存中获取数据。您必须在标题中添加 no-cache 。

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})
于 2018-06-22T14:34:52.243 回答