2016-10-16 22 views
5

API'nin bana geri döndüğü hata gövdesini nasıl ayrıştırabilirim diye sormak isterim. Angular 2'deki ayrıştırma hatası gövdesi

Bu

API getiri resimdir: Ben URL erişebilirsiniz

login(username,password){ 
     let headers = new Headers(); 
     headers.append('Content-Type','application/json'); 

     return this.http.post(this.configEnvironment.url() + "oauth/access_token", 
      JSON.stringify(
       { 
        username: username, 
        password: password, 
        grant_type: "password", 
        client_id: "xxxxxxx", 
        client_secret: "xxxxxxxx" 
       } 
      ), 
      { headers } 
     ) 
     .map(res => res.json()) 
     .catch((err:any) =>{ 
      console.log(err); 
      return Observable.throw(new Error(err)); 
     }); 

    } 

, durum, statusText vb bu kullanarak:

err.status,err,url,error.statusText 
İşte enter image description here

kod bu

Sorunum, hata gövdesinin değerini alamıyorum.

cevap

11

Sizin catch'unuz aslında bir Response alıyor. Sen json()

import { Response } from "@angular/http"; 
... 
.catch((err:Response) =>{ 
      let details = err.json().error; 
      console.log(details); 
      return Observable.throw(new Error(details)); 
     }); 

notla ayrıntılarını erişebilirsiniz: Bu cevap @angular/http kütüphanede hakkındadır. Açısal 5'ten itibaren, bu kitaplık @angular/common/http

+0

lehine önerilmemektedir. Bu benim sorunumu çözebilir –

+0

@SydneyLoteria Sorun değil. Yapmış olduğum gibi 'err' türünü 'herhangi bir' yanıt 'olarak değiştirirseniz daha iyi IDE yardımı alırsınız. – BeetleJuice

+0

Angular 5 @ açısal/ortak/http yöntemi nedir? –

İlgili konular