Unterscheiden Sie zwischen App-Aufrufen zu $ ​​http und Angulars Anforderungen für statische Ressourcen im Interceptor

8

Mit AngularJS-Interceptors ist es möglich, meine App-Aufrufe zu $ ​​http (direkt über $ resource) von Anfragen zu unterscheiden, die Angular selbst für statische Ressourcen, wie Views, erstellt, ohne URLs zu überprüfen?

Ich füge benutzerdefinierten Autorisierungsheader im HTTP-Interceptor wie folgt hinzu:

%Vor%

Es funktioniert gut, aber ich brauche keine Berechtigung für statische Ressourcen und mein Server überprüft sie nicht. Ich könnte URLs überprüfen und diejenigen überspringen, die mit '/ app' beginnen (in meinem Fall), aber ich frage mich, ob es eine elegante Lösung gibt?

    
Tvaroh 08.11.2013, 22:15
quelle

2 Antworten

8

Meine Experimente haben gezeigt, dass bei Anfragen nach Vorlagen das Objekt config eine Eigenschaft cache hat und ein Aufruf von config.cache.info() ein Objekt zurückgibt:

%Vor%

Dies ist wahrscheinlich die einzige zuverlässige Möglichkeit, dies ohne Überprüfung der URL zu tun.

Ich habe auch versucht, Stack-Spuren zu untersuchen, aber ohne Erfolg - es ist schwer, ein vernünftiges Muster zu finden, und man sollte sich nicht darauf verlassen.

Meiner Meinung nach ist der beste Weg, die URL zu überprüfen.

    
Adam 16.11.2013, 22:44
quelle
1

Ein kurzes Stück Inspektion führte mich zu der Hypothese, dass Vorlagenanforderungen mit einem Accept-Header von text / html gemacht werden, mit dem Sie sie schnell umgehen können. Viele Plugins scheinen das beim Laden von Templates nicht zu beachten, aber ein paar indexOf's auf der URL könnten das für Sie aufräumen. Mein Beispiel:

%Vor%
    
Mark Jerzykowski 10.11.2015 08:58
quelle