打开 IE 11 开发工具导致问题

Opening IE 11 dev tool causing the issue

提问人:Anna 提问时间:6/15/2018 更新时间:6/22/2018 访问量:210

问:

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

问题:我点击的那些语言似乎被添加到收藏夹列表中,但是当我刷新页面时,以前选择的收藏夹没有反映出来(对数据库的调用没有进行,更改没有反映到数据库)。

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

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

Angular 互联网浏览器 11 IE IE11 开发人员工具

评论

0赞 Andy Sterland 2/25/2019
对于 fwiw,IE 开发工具有一个选项,可以在工具打开时禁用缓存。在您的情况下,可能会打开此功能。这也许可以解释为什么打开工具时行为会有所不同。您可以在网络工具中更改此行为。这是网络工具“始终从服务器刷新”中右起的第 4 个命令,您可以打开/关闭它。

答:

0赞 Fateh Mohamed 6/22/2018 #1

您必须阻止 GET 请求的缓存,Internet Explorer 在触发 GET 请求时从缓存中获取数据。您必须在标头中添加 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})