使用angular2从rest api获取响应错误

时间:2017-10-15 10:38:23

标签: angular rest error-handling response

Client.service.ts:

add(client: Client): Observable<Client> {
    return this.authHttp.post(this.URI, client)
      .map((res) => res.json()
      //...errors if any
      ,(message)=>message.json());

Client.add.componement.ts:

  this.clientService.add(client)
    .subscribe(_client => {
      this.onAdd.emit(_client);
    },
      message => console.log("THIS ERROR"+message));

但是出现错误的结果是:the result is always bad request

如何获取消息或错误列表the result i get in brower

1 个答案:

答案 0 :(得分:0)

如果将angular2-jwt用作authHttp,请确保导入并正确注入服务:

import { AuthHttp } from 'angular2-jwt'; - &gt; constructor (private authHttp: AuthHttp) { }

然后,您可以执行类似操作(确保向POST请求添加内容类型/请求选项):

add(client: Client): Observable<Client> {
    let headers = new Headers({ 'Content-Type': 'application/json' }); // set content-type
    let options = new RequestOptions({ headers: headers }); // create a request option

    return this.authHttp.post(this.URI, client, options)
        .map((res) => res.json())
        //...errors if any
        .catch(this.handleErrorObservable);
}

private handleErrorObservable(error: Response | any) {
    console.error(error.message || error);
    return Observable.throw(error.message || error);
}

然后当你打电话时:

this._clientService.add(client)
    .subscribe(
         res => console.log(res),
         err => console.log(err)
     );

否则,请确保在Web api代码中以JSON格式返回所需的回复。