Microsoft Edge 缓存 API 请求

3
我在使用Microsoft Edge浏览器访问我的电子商务网站时遇到了一些问题。我遇到的主要问题是在进行angular $http.get请求时。
通常,当用户访问/cart页面时,应用程序会流程会使浏览器向/api/cart发出请求,该请求将返回JSON格式的购物车内容和定价信息。
我遇到的问题是,当在其他页面上添加产品时,会正确更新会话中的信息,但是Edge浏览器会使用旧信息加载/api/cart。但是,当您在Edge的另一个选项卡中直接请求/api/cart时,JSON会正确加载。
需要澄清的是,这种不正确的行为仅在Edge中发生;Chrome和Firefox按预期工作。
我在开发中使用MEAN堆栈。
简而言之:如何防止Edge浏览器对api JSON请求进行缓存。

enter image description here


同时,当你在 Edge 中关闭缓存时,一切都能正常工作。 - John Dews
1个回答

2
解决方案非常简单,只需要明确设置缓存控制为no-store即可。
  function nocache(req, res, next) {
      res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
      res.header('Expires', '-1');
      res.header('Pragma', 'no-cache');
      next();
  }

上面是一个快速的中间件函数,它将把给定的请求更改为无缓存状态。

应该说,这不是特定于 Edge 的问题。 - John Dews
你能指定这应该放在哪个文件里,并从哪个函数调用以修复购物车问题吗? - Code Baller
有人能够找出为什么 Edge 默认会将 API 请求缓存到磁盘中吗?我知道解决方案,但我想了解为什么 Edge 这样做。 - KareemJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接