2017-07-19 2 views
0

Ich habe Probleme mit Header-Caching in einer Anfrage.

meine Ressource ist wie folgt aussieht:

method: 'GET', 
cache: false, 
headers: { 
    session: auth.mySession() 
} 

Provider ist auch konfiguriert.

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'; 
}]). 

In der Praxis funktioniert es nicht. Anforderung wird mit einer Sitzung gesendet, während sie entfernt wird, und ohne die Sitzung, während sie festgelegt ist. Ich musste Strg + F5 drücken.

Antwort

0

Endlich wurde mir klar, dass es nicht darum geht, Ergebnisse zu cachen, sondern Header selbst zu cachen.

Header werden nur einmal bei der Initialisierung der Seite berechnet. Gleich danach kam ich mit einer Interceptor-Lösung, die immer eine gültige Sitzung in den Header einer Anfrage injiziert.

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; 
    }; 
}]); 
Verwandte Themen