Angular:1.3
我的$ resource和$ cacheFactory的分配看起来像这样。通过我定义的get方法发出的每个请求都没有缓存:
return $resource(
this.path,
null,
{
'get': {
method: 'POST',
isArray: false,
cache: $cacheFactory('cacheId', { capacity: 10 });
headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }
}
});
答案 0 :(得分:1)
从查看源代码,cache参数仅用于http GET或JSONP请求:
if ((config.cache || defaults.cache) && config.cache !== false &&
(config.method === 'GET' || config.method === 'JSONP')) {
cache = isObject(config.cache) ? config.cache
: isObject(defaults.cache) ? defaults.cache
: defaultCache;
}
不缓存POST请求。我正在使用POST,因为我需要指定一个很长的项目列表来获取作为参数。没有POST我超过了最大URL len限制。一旦我将请求切换到GET,缓存就可以工作了。
仅供参考,对于我的用例,我要么取一件物品,要么取很多物品。因此,我只想要单个项目提取的缓存。