Angularjs 如何创建$http缓存密钥

Angularjs 如何创建$http缓存密钥,angularjs,angular-http,Angularjs,Angular Http,在Angular文档中,它没有具体说明$http如何检查缓存中的现有密钥 例如,当我这样做时: $http.get("/search/11", { cache: true }); 缓存显然可以工作 但如果我这么做呢 $http.get("/search", { cache: true, params: { age: 11 } }); 还是更复杂 $http.post("/search", objectParams, { cache: true }); 如果我更改objectParams的一

在Angular文档中,它没有具体说明$http如何检查缓存中的现有密钥

例如,当我这样做时:

$http.get("/search/11", { cache: true });
缓存显然可以工作

但如果我这么做呢

$http.get("/search", { cache: true, params: { age: 11 } });
还是更复杂

$http.post("/search", objectParams, { cache: true });
如果我更改
objectParams
的一个属性,它是否会通过缓存


更普遍的问题是,Angular如何知道何时从缓存提供服务,何时发出新请求?它是只比较url、参数、后加载还是全部比较?

缓存键是由
http.js
()中的
buildUrl
函数生成的url:

它创建了一个带有查询字符串部分的url:
?key1=val1&key2=val2
out of
config.params

所以

将有一个缓存键
“/search?key1=val1”

url = buildUrl(config.url, config.params);
$http.get("/search", {cache: true, params: {key1: "val1"}})
// or
$http.post("/search", postData, {cache: true, params: {key1: "val1"}})