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?
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:
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.
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:
Tags und Links javascript angularjs interceptor