2016-04-04 7 views
2

Ich arbeite an einer Angular App. Beim Abmelden löschen wir einige Cookies und möchten dann die Seite einschließlich aller JS-Skripte vom Server (nicht vom Browser-Cache) neu laden.Wie winkelige App vom Server neu geladen werden, ohne Browser-Cache zu verwenden, nach dem Logout

Der Server verfügt über einige Authentifizierungsfunktionen, die zu einem Anmeldeformular umleiten, wenn keine Cookies vorhanden sind.

Nach MDN Dokumente, um die Seite neu zu laden, ohne den Cache zu verwenden, habe ich window.location.reload(forceReload); mit forceReload=true. Aber es funktioniert nicht. Die Seite wird neu geladen, aber vom Cache nicht vom Server.

  $http({ 
       method: 'GET', 
       url: api.baseUrl + '/logout', 
      }).then(function() { 
       // Should reload the current page, without using the cache 
       window.location.reload(true); 
       return; 
      }); 

EDIT

Der obige Code korrekt ist, hat es die Seite neu zu laden, ohne den Cache zu verwenden.

Das Problem war mit Authentifizierung auf unserer Server-Seite. Ich würde diese Frage löschen, aber Stack Overflow entmutigt, Fragen mit Antworten zu löschen.

+0

Sie auch Ihren Server sagen sollte nicht Diese URLs zu cachen ... – dandavis

+0

Tatsächlich wird window.location.replace den IE nicht zwingen, HTML-Templates neu zu laden, wenn sie vom Server angefordert werden (wenn Sie sie nicht in js packen). In diesem Fall ist der einzige Weg, eine andere URL wie template.html zu request? Timestamp = 123232323 –

Antwort

-1

Sie können die HTTP-Anfragen-Cache mit

$cacheFactory.get('$http').removeAll(); 

entfernen auch für jede Anforderung, können Sie festlegen, ob Sie die Antwort auf gecached werden sollen oder nicht:

factory('User', function($resource) { 
    return $resource(yourapi + 'route', {}, { 
     get: { 
      cache: false, // you can disable cache for login for example ! 
      method: 'GET' 
     } 
    }); 
}); 
+0

Das Problem ist nicht der $ http Cache, das Problem ist, dass der Browser die ganze Single-Seite app: index.html, JS-Dateien, CSS zwischengespeichert ... – klode