2016-10-16 38 views
7

HTTP isteğimde, API hatası geri dönüşünün değerini yakalama yoluyla elde etmeyi başardım. Sorunum, hizmeti çağırdığımda, bileşenimin HTTP yakalamasının dönüş değerini nasıl alabilirim. HTTP yakalamasından ayrıştırma hatası - Açısal 2

this.loginService.login(this.model.username,this.model.password) 
      .subscribe(
       data => console.log("data"), 
       error => { 
        console.log(error); 
       }, 
       () => console.log("Finished") 
      ); 

ve bu krom geliştirici araçları içinde

konsolunun geri dönüşüdür: Bu benim login.component benim kod

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: "xxxx", 
        client_secret: "xxxxx" 
       } 
      ), 
      { headers } 
     ) 
     .map(res => res.json()) 
     .catch((err:Response) => { 
      let details = err.json(); 
      return Observable.throw(new Error(details)); 
     }); 

    } 

geçerli:

Bu

benim HTTP hizmetinde benim kodudur .log:

Error: [object Object](…) 

Ama http hizmet yakalama gerçek dönüş şudur: { "hata": "invalid_credentials", "ERROR_DESCRIPTION": "geçersiz kimlik bilgileri"} ve bu senin .catch(), değişikliğinde login.component içinde

+0

Anlamıyorum. Konsolda ne almak istediğin değil? Onun yerine ne istersiniz? – BeetleJuice

+0

Hizmetin gerçek dönüşü şudur: {"hata": "invalid_credentials", "error_description": "geçersiz kimlik bilgileri" ve bu i bileşenine almak istiyorum –

+0

bileşeninde "error.error_description" bileşenini deneyin . – Sefa

cevap

8

almak istiyorum geçerli:

return Observable.throw(new Error(details)); 

için :

return Observable.throw(details); 
+0

Teşekkürler Adam! Bu sorunları çözmek. –