Angularjs 如何使用缓存使$http调用无效:当标头更改时为true

Angularjs 如何使用缓存使$http调用无效:当标头更改时为true,angularjs,angularjs-http,Angularjs,Angularjs Http,我正在获取远程资源并缓存结果: $http({ method:'GET', cache:true, url:'...' }); 这个很好用。但是,当用户更改UI中的语言时,我也会更改所有AJAX调用的Accept Language头 问题是缓存是基于URL完成的,因此如果调用是使用缓存的en-US作为Accept Language进行的,并且任何其他调用(无论使用何种语言)都是从缓存中服务的 我不想将语言添加到URL 我的选项是什么?$cacheFactory可用于在用

我正在获取远程资源并缓存结果:

$http({
    method:'GET',
    cache:true,
    url:'...'
});
这个很好用。但是,当用户更改UI中的语言时,我也会更改所有AJAX调用的
Accept Language

问题是缓存是基于URL完成的,因此如果调用是使用缓存的
en-US
作为
Accept Language
进行的,并且任何其他调用(无论使用何种语言)都是从缓存中服务的

我不想将语言添加到URL


我的选项是什么?

$cacheFactory
可用于在用户更改语言时使缓存无效。您可以尝试对其进行修饰,或者在服务中使用wrap,或者

查看一下
$cacheFactory
,并将其包装在一个小服务中,这样您可以在用户语言更改时使缓存失效。抱歉,这不是一个正确的答案,因为我没有任何示例代码:这是一个好主意。我还可以尝试装饰
$cacheFactory
。谢谢,Jorg。你可以把它作为答案发布,它不需要代码。