我在请求中遇到标头缓存问题。
我的资源看起来像是:
method: 'GET',
cache: false,
headers: {
session: auth.mySession()
}
还配置了提供程序。
config(['$httpProvider', function($httpProvider) {
if (!$httpProvider.defaults.headers.get) {
$httpProvider.defaults.headers.get = {};
}
$httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';
$httpProvider.defaults.headers.get['Pragma'] = 'no-cache';
}]).
在实践中它不起作用。 请求在删除时与会话一起发送 它没有设置会话。 我必须按Ctrl + F5。
答案 0 :(得分:1)
最后我意识到这不是关于缓存结果,而是自己缓存标题。
在页面初始化阶段只计算一次标题。 在那之后,我带来了拦截器解决方案,它总是将有效会话注入到请求的标题中。
config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('injectingSessionInterceptor');
}]).
service('injectingSessionInterceptor', ['auth', function (auth) {
var ser = this;
ser.request = function (config) {
var session = auth.mySession();
config.headers.session = session;
return config;
};
}]);