默认情况下,我正在进行的所有http请求都会被缓存。现在,如何清除特定请求的缓存?
这是一个更好解释的情况。我有一个REST API,它根据身份验证发送两种不同的数据。每当用户进行身份验证时,我都需要清除旧数据并通过身份验证发出新请求。我的控制器被刷新,但由于调用已被缓存,因此未进行API调用。它返回旧数据。
答案 0 :(得分:0)
您可以使用Angular的内置$cacheFactory
E.g
// cache the HTTP response
$http.get('myurl',{
cache: true
}
// this object can now be retrieved using $cacheFactory
var httpCache = $cacheFactory('$http');
// to remove the value from the cache, get the default $http cache, call the remove function and pass in the url
var httpCache = $cacheFactory.get('$http');
httpCache.remove('myurl');
答案 1 :(得分:0)
告诉我们的$ http请求通过我们自己的自定义缓存发出请求很简单。我们可以传递缓存的实例,而不是通过请求传递布尔值true。
var myCache = $cacheFactory.get('myCache');
$http({
method: 'GET',
url: '/api/users.json',
cache: myCache
});
// Or, using the .get helper
$http.get('/api/users.json', {
cache: myCache
});
现在,$ http将使用我们的自定义缓存而不是使用默认缓存。