2016-10-16 19 views
7

Tôi đã đạt được để lấy giá trị của lỗi API trở lại thông qua bắt trong Yêu cầu HTTP của tôi. Vấn đề của tôi bây giờ là làm thế nào tôi có thể nhận được giá trị trả về của HTTP bắt trong thành phần của tôi khi tôi gọi dịch vụ.Trả về lỗi phân tích cú pháp từ HTTP catch - Angular 2

Đây là mã của tôi phục vụ HTTP của tôi:

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)); 
     }); 

    } 

Đây là mã của tôi trong login.component tôi:

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

và trong các công cụ phát triển chrome này là sự trở lại của giao diện điều khiển .log:

Error: [object Object](…) 

Nhưng sự trở lại thực tế của dịch vụ http: { "lỗi": "invalid_credentials", "ERROR_DESCRIPTION": "thông tin không hợp lệ"} và đây là tôi muốn để có được trong login.component

+0

Tôi không hiểu. Những gì bạn nhận được trong giao diện điều khiển không phải là những gì bạn muốn? Thay vào đó bạn muốn gì? – BeetleJuice

+0

Trả lại thực tế của dịch vụ là: {"lỗi": "invalid_credentials", "error_description": "thông tin đăng nhập không hợp lệ" và điều này tôi muốn tham gia thành phần –

+0

thử 'error.error_description' trong thành phần . – Sefa

Trả lời

8

Trong .catch() của bạn, thay đổi:

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

để :

return Observable.throw(details); 
+0

Cảm ơn Man! điều này giải quyết vấn đề. –

Các vấn đề liên quan