2015-07-28 12 views
5

Ich habe Java-REST-Dienste und Verbraucher in Angularjs 1.3. Dienste basieren auf JSON und erwarten eine BASIC-Authentifizierung (Benutzername-Passwort). In AgJs 1.3 habe ich Base64 Factory-Code (bei Google gefunden) verwendet, um ein Standardauthentifizierungstoken von Benutzername und Passwort zu erstellen und Dienste ERFOLGREICH zu konsumieren.So rufen Sie REST-Service mit Basic-Authentifizierung in Angularjs 2.0

Ich lese HTTP-Klasse in AgJs 2.0-Dokumentation, aber ich habe keine Informationen über die grundlegende Authentifizierung gefunden.

Könnte jemand bitte Beispielcode bereitstellen, um REST-Dienste in Angularjs 2.0 mit BASIC-Authentifizierung zu nutzen?

Vielen Dank im Voraus!

Mit freundlichen Grüßen!

Mein AgJs 1.3 Code:

var url = "http://x.x.x.x:xxxx/data/" + Nummer;

$http.defaults.headers.common['Authorization'] = 'Basic ' + Base64.encode('username' + ':' + 'password'); 
$http.defaults.headers.common['Content-Type'] = 'application/json'; 

$http({ method: 'GET', url: url }). 
     success(function (data, status, headers, config) { 
      alert(data); 
     }). 
     error(function (data, status, headers, config) { 
      alert("error: " + data); 
     }); 
+0

Ich weiß nicht, ob Sie der gleiche Benutzer wie in diesem [Problem] sind (https://github.com/angular/angular/issues/3266), aber falls es jemand anderem helfen könnte ... –

+0

Haben Ein Blick auf [diese Antwort] (http://stackoverflow.com/a/34465070/995671) auf eine ähnliche Frage. –

Antwort

0

abhängig, ob Sie den neuen Angular2 http api verwenden, oder etwas Äußerliches wie fetch.

Wenn letzteres Sie so etwas tun könnte, nur nicht vergessen, mit Zone zu wickeln:

myHeaders = { 
     'Accept': 'application/json', 
     'Content-Type': 'application/json', 
     'Authorization': 'Basic ' + Base64.encode('username' + ':' + 'password') 
    } 
return Zone.bindPromiseFn(fetch)(
      url, 
      { 
       method: 'GET', 
       headers: myHeaders, 
       body: JSON.stringify(myData) 
      }).then(
       r => {return r.json()} 
     ); 
1

Ich habe machen nur einen Beitrag von angular2 zu einem Server, auf Basis Auth hat und dies funktioniert:

sendAuthentification(credentials: string): Observable<any> { 
      var headers = new Headers(); 
      headers.append('Authorization', 'Basic ' + btoa('user:pass')); 

      return this.http.get("http://ip/yourpost", headers}); 
    } 

Hoffe das beantworten Ihre Frage.