Microsoft Edge 缓存 Api 请求

Microsoft Edge Cache Api Requests

我的电子商务网站在使用 Microsoft edge 时遇到一些问题。我遇到的主要问题是在 angular $http.get 请求期间。

通常,应用程序流程是每当用户访问 /cart 页面时,浏览器向 /api/cart 发出请求,其中 returns JSON 连同购物车的内容含定价信息。

我遇到的问题是,当(在其他页面上)添加产品时,会话会正确更新信息,但边缘会加载 /api/cart 旧信息。然而,当您在边缘的另一个选项卡中直接请求 /api/cart 时,JSON 会正确加载。

澄清这种不正确的行为只发生在 Edge 中; Chrome 和 Firefox 按预期工作。

我正在使用 MEAN 堆栈进行开发。

TLDR: How do I prevent caching on an api JSON request in Edge

解决方案相当简单,只需将缓存控件显式设置为无存储即可。

  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();
  }

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