2017-09-20 3 views
1
API 

add(data) { 
return this.httpClient.post<any>('/api/v3/templates', data); 
} 

Observable 

this.templateService.add(obj) 

.subscribe(
(response) => { 
    console.log(reposne) 
}, 
(error) => { 
console.log(error) 
} 
); 

My Post APIは、名前が既に存在するため、一部のメッセージでエラーが返されますが、エラーが発生しました。コンソール読む方法バックエンドからの角度4/2のカスタムエラーメッセージ

The object which is printed is 
{ 
    error:null 
    headers:HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, 
    lazyInit: ƒ} 
    message:"Http failure response for http://localhost/api/v3/templates: 
400 Bad Request" 
    name:"HttpErrorResponse" 
    ok:false 
    status:400 
    statusText:"Bad Request" 
    url:"http://localhost/api/v3/templates" 

}

は、どのように私はそのレスポンスボディを持っていない私のエラー オブジェクトとして対応して取得していたメッセージを取得することができます。

+0

ステータス:400 statusText: "Bad Request" ' –

+0

エラーオブジェクトには含まれていないこのエラーのテキストで応答が返ってきています。ステータステキストにはテキストが含まれています「OK」や「Not Found」/ BadRequetなどのレスポンスステータスが表示されます。 –

+0

@atulmishra、解決策を見つけましたか?また、サーバーからカスタムエラーメッセージを送信しようとしていますが、[HttpClient](https://angular.io/guide/http)を使用しているときに受信できません。しかし、私は以前の[Http](https://angular.io/api/http/Http) –

答えて

0

3つのオプションがあります。

  • 次 - あなたが購読メソッドに渡された。その次の関数 - データ
  • エラーを手に入れるために加入。これには、エラーステータスコードと、接続エラー、不良リクエストのようなほとんどのHTTPエラーが含まれています。
  • 最後に、どのようにすべての後に実行します。

他の人があまりにもマップのような、デバウンスなどがある

this.templateService.add(obj) 
    .subscribe(
     (response) => { // this is the next and hold the response 
     console.log(response) 
     }, 
     (error) => { // this is the error 
     console.log(error) 
     }, 
     (finall) => { // this is final and execute alwasys 
     console.log('this is the final piece of code to execute') 
     } 
    ); 

私はあなた、あなたの場合は、エラーがHTTP標準に来ていない可能性があり、サブスクライブで来るかもしれないと思います。

カスタマイズされたメッセージがエラーとしてではなく次に来るかどうかを確認してください。

+0

を使用すると、同じことが完全にうまくいきます。コード –

+0

でコードを表示してください。また、console.logにスペルを記入してください応答が間違っている、あなたはそれを修正することができます –

+0

まだ取得していないと私は同じことをやっていた –

関連する問題