2014-03-18 5 views
6

Ist es möglich, einen Header nur für bestimmte Domains zu setzen?

Die „normale“ Art und Weise, dies zu tun fügt hinzu, dass Header für alle Anrufe, auch Anrufe, die HTML-Templates zum Beispiel abrufen.

$http.defaults.headers.common['Authorization']='...'; 

Bisher andere als ein $ http Abfangjäger verwenden, kann ich sehen, andere Art und Weise nicht, aber wenn man von einem denken, ich bin gespannt.

Danke.

+0

Sorry, ich wusste nicht, dass Sie gesagt haben Sie eine Möglichkeit, andere als mit einem Interceptor wollen. – Jonathan

+0

Kein Problem. Wenn das nur möglich ist, ist das die richtige Antwort. – Francisc

Antwort

8

einen Abfangjäger zu schaffen, ist die Art, wie ich damit umgehen. Ich bin mir nicht sicher, ob es anders geht, also hier ist ein Beispiel. :)

Sie könnten einen Abfangjäger erstellen, die mit $httpProvider registriert ist. Angular wird das Standard-Konfigurationsobjekt für die Änderung passieren und man kann die Header dort ändern. Hier

wenn ein kurzes Beispiel auf der Grundlage der Angular $http doc page:

//register interceptor as a service 
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) { 
    return { 
     // optional method 
     'request': function(config) { 
      //Figure out which headers you want and set them just for this request. 
      config.headers = {"myHeader":"Special"} 

      return config; 
     } 
    }; 
}); 

$httpProvider.interceptors.push('myHttpInterceptor'); 
Verwandte Themen