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();
}
以上是一个快速的中间件函数,它将给定的请求更改为无缓存状态。
我的电子商务网站在使用 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();
}
以上是一个快速的中间件函数,它将给定的请求更改为无缓存状态。