如何在AngularJS中向$ resource添加Cache-control标头

时间:2014-03-10 09:44:46

标签: angularjs

我试图通过将Cache-control标头设置为我的一些GET请求来绕过激进的IE10缓存。

然而,它似乎没有预期的效果。您可以在下面找到我使用的代码。名字有点消毒。

service.factory('service', ['$resource',
    function($resource) {
        return $resource(url + '/:year', {year : '@year'},
            {'GET': {
                headers : {
                    'cache-control': 'private, max-age=0, no-cache' }
            }});
    }
]);

4 个答案:

答案 0 :(得分:2)

我已将缓存控件放在配置中。

$httpProvider.defaults.headers.common['Cache-Control'] = 'no-cache, no-store, must-revalidate';
$httpProvider.defaults.headers.common['Pragma'] = 'no-cache';
$httpProvider.defaults.headers.common['Expires'] = '0';    

有了这个,我能够为IE缓存,但我在配置路由器提供商之前放入了模块配置。


更新

可能是这样的,我对此并不完全确定。所以你可以试试。

service.factory('service', ['$resource',
    function($resource) {
        return $resource(url + '/:year', {year : '@year'},
            {'GET': {
                headers : {
                    'cache-control': 'no-cache, no-store, must-revalidate',
                    'Pragma' : 'no-cache',
                    'Expires' : '0'
                }
            }});
    }
]);

答案 1 :(得分:2)

建议的解决方案对我没有帮助,但给予深思。为子孙后代发布最终解决我问题的配置。

var config = {
            headers : {
                "Pragma": "no-cache",
                "Expires": -1,
                "Cache-Control": "no-cache"
            }
        };

答案 2 :(得分:0)

service.factory('service', ['$resource',
    function($resource) {
        return $resource(url + '/:year', {year : '@year'},
            {'GET': {
                headers : {
                    "Pragma": "no-cache",
                    "Expires": -1,
                    "Cache-Control": "no-cache"
                }
            }});
    }
]);

答案 3 :(得分:0)

$http.get("your api url", {
    headers: {
        'If-Modified-Since': '0',
        "Pragma": "no-cache",
        "Expires": -1,
        "Cache-Control": "no-cache, no-store, must-revalidate"
    }
})

这个将禁用每个浏览器的缓存。