2016-04-21 5 views
1

Also, ich habe für die letzten zwei Tage zu graben, aber ich habe keine Ahnung, warum dies nicht funktionieren ..AngularJS Header-Berechtigung für Token

hier ist das Problem, ich versuche Anforderung an einen api zu machen Server und ich muss ein Token in der Anfrage hinzufügen, aber wenn ich das Token zu Header-Autorisierung hinzufügen, habe ich Antwort 405 vom Server

diese API habe ich auf Briefträger und seine Arbeit getestet, aber wenn ich In den Winkel implementieren es nicht

dies mein Code funktioniert:

$http({ 
      method: 'POST', 
      url: url, 
      data: data, 
      headers: { 
       "Authorization": "Bearer xxxxxxxxxxx", 
       "Content-Type": "application/x-www-form-urlencoded" 
      } 
     }) 

und dies ist der erf Header aus Chrom: img

so in diesem Fall ist dies mein Code oder der Server Problem ??

+0

Ein Problem, das ich sehe, ist, dass Sie ein Formular-urlencoded Post tun, nicht die Standard-json Post. Die Daten müssen transformiert werden. Siehe http://stackoverflow.com/questions/24710503/how-do-i-post-urlencoded-form-data-with-http-in-angularjs – Chandermani

+0

Ich habe die Daten korrekt umgewandelt, wenn ich nicht enthalten bin Header Autorisierung Req ist Arbeit, und Ergebnis JSON Antwort Formular vom Server, aber wenn ich versuche, Header-Autorisierung hinzuzufügen, wird es nicht funktionieren –

+0

Sie können das Netzwerkprotokoll auf Fehler überprüfen. – Chandermani

Antwort

0
angular 
    .module('app') 
    .factory('authInterceptor', authInterceptor); 
authInterceptor.$inject = ["$q","$location"]; 
function authInterceptor($q, $location) { 
     return { 
      // Add authorization token to headers 
      request: function (config) { 
      // get token from a cookie or local storage 
      var token = "token string "; 
      config.headers = config.headers || {}; 
      config.headers.Authorization = "Bearer " + token; 
      return config; 
      }, 
      // Intercept 401s and redirect you to login 
      responseError: function(response) { 

      if(response.status === 401) { 
      // redirect to some page 

       // remove any stale tokens 
       return $q.reject(response); 
      } 
      else { 
       return $q.reject(response); 
      } 
      } 
     }; 
     } 

dann injizieren, um die Abfangjäger wie diese

$httpProvider.interceptors.push('authInterceptor'); 
+0

noch Fehler, 405 Methode nicht zulässig: '( –

+0

vielleicht ist das Token, das Sie verwenden, nicht gültig oder abgelaufen –

+0

, auch wenn das Token mindestens seine Rückkehr json korrekt abgelaufen ist und ich bekam die Fehlermeldung vom Server, dass das Token abgelaufen war –

Verwandte Themen