Ich benutze derzeit Service/$ Ressource, um AJAX-Aufrufe (GET in diesem Fall) zu machen, und IE speichert die Aufrufe im Cache, so dass keine neuen Daten vom Server abgerufen werden können. Ich habe eine Technik verwendet, die ich beim Googlen gefunden habe, um eine Zufallszahl zu erzeugen und sie an die Anfrage anzufügen, so dass IE nicht zum Cache für die Daten gehen wird.Bessere Möglichkeit, IE Cache in AngularJS zu verhindern?
Gibt es einen besseren Weg, als den CacheKill zu jeder Anfrage hinzuzufügen?
Werkscode
.factory('UserDeviceService', function ($resource) {
return $resource('/users/:dest', {}, {
query: {method: 'GET', params: {dest: "getDevicesByUserID"}, isArray: true }
});
Anruf von der Steuerung
$scope.getUserDevices = function() {
UserDeviceService.query({cacheKill: new Date().getTime()},function (data) {
//logic
});
}
Ich habe No-Cache-Header auf der Server-Seite hinzugefügt und es funktionierte für jetzt. –
Ufuk, das scheint der effektivste Weg zu sein, das Problem "global" oder besser skalierbar zu erledigen, ohne jeden Ajax/REST-Aufruf einzigartig machen zu müssen. Du solltest die Frage beantworten, damit ich sie als Antwort markieren kann! Du verdienst den Kredit. – binarygiant
BTW, ich benutze node/express für den Webserver, und ich habe erreicht, was Ufuk empfohlen hat, indem ich den folgenden Code hinzufüge, um config: app.use (Funktion noCache (req, res, next)) { res.header ("Cache "Control", "no-cache, no-store, muss revidieren"); res.header ("Pragma", "no-cache"); res.header ("Läuft ab", 0); next (); }) – binarygiant