2017-06-15 10 views
0

Die Post-Anfrage erhalten die Antwort von API mit dem neuen Token, wie ich den Token-Parameter aus den Response-Daten bekommen kann.Angular 2 Wie bekomme ich Antwortdaten von Post Anfrage

Diese sieht nicht funktioniert ...

.map {Antwort: Response => {lassen Token = response.json() Token}

Die Antwort von post-Anfrage mit . Token von REST-API

{ 
    { "token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE0OTc1NDAzNDgsImp0aSI6IjVVNHJLazlONThmOHVaUVZPNkNVNHBYRUR3ZGdQbFE0TWNYU3l6YnFPMzA9IiwiaXNzIjoiaHR0cDpcL1wvbG9jYWxob3N0Ojg4ODhcL2RiYW5kand0XC8iLCJuYmYiOjE0OTc1NDAzNTgsImV4cCI6MTQ5NzU0NzU1OCwiZGF0YSI6eyJ1c2VySWQiOiIzIiwidXNlck5hbWUiOiJtYXJjby5saW5rZSIsImlzQWRtaW4iOmZhbHNlfX0.NOyLSB7N4TtVv9w7dw7mPrL5MUcAVjExycCSG-iJlqHiT3mugh20kq1T2N9RrBXsHO9XsvfEfrJ7k04QOw8hYw" 
} 

}
login(username: string, password: string): Observable<boolean> { 
    return this.http 
    .post('http://localhost:8888/dbandjwt/', 
      JSON.stringify({ username: username, password: password })) 
    .map((response: Response) => { 
      let data = response.json().token; //how i get the token from response data? 
      let token = data.token; 
      if (token) { 
       this.token = token; 
       localStorage.setItem('currentUser', JSON.stringify({ username: username, token: token })); 
     }) 
    }  
+1

abonniert haben Sie überall? – Alex

Antwort

0

Das Problem ist, dass Ihr json erzeugt Fehler analysieren, verwenden Sie zuerst

.map { response: Response => { let token = response.text()} 

dann nur diesen Teil der Antwort zu extrahieren (Sie hatten {{"token":"etc.."}}{"token":"etc.."}

{ "token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE0OTc1NDAzNDgsImp0aSI6IjVVNHJLazlONThmOHVaUVZPNkNVNHBYRUR3ZGdQbFE0TWNYU3l6YnFPMzA9IiwiaXNzIjoiaHR0cDpcL1wvbG9jYWxob3N0Ojg4ODhcL2RiYW5kand0XC8iLCJuYmYiOjE0OTc1NDAzNTgsImV4cCI6MTQ5NzU0NzU1OCwiZGF0YSI6eyJ1c2VySWQiOiIzIiwidXNlck5hbWUiOiJtYXJjby5saW5rZSIsImlzQWRtaW4iOmZhbHNlfX0.NOyLSB7N4TtVv9w7dw7mPrL5MUcAVjExycCSG-iJlqHiT3mugh20kq1T2N9RrBXsHO9XsvfEfrJ7k04QOw8hYw" 
} 

sein sollte, und dann können Sie es zu JSON werfen JSON.parse(str) oder jede Methode verwenden Sie wissen

0

Angenommen, Sie abonnieren es in einer Ihrer Komponenten.

In Service

.... 
.map((response: Response) => response.json()) 
.catch(...... 

In Component

.subscribe(
    data => { 
     localStorage.setItem('token', data.token); 
...... 

Dieses Ihr Problem lösen sollte ..