Angular 2 HttpClient错误体

时间:2017-08-08 09:39:13

标签: ajax angular rest

我正在使用新的(4.3)HttpClient角度来POST数据到我的后端服务器:

this.httpClient.post<View>(`/path`, data).subscribe(
  (view: View) => console.log("Success"),
  (error: HttpErrorResponse) => {
      console.log(error)
      this.errorMessage = <any>error.error;
  });
);

此调用生成(预期)错误(409),但由于某种原因,记录的错误不包含从服务器发送的错误的正文。我可以看到状态代码,但缺少应包含响应正文的error.error字段。任何人都有任何想法可能是错的?

我已经使用curl测试了后端调用,并且可以从服务器看到响应主体。

2 个答案:

答案 0 :(得分:0)

您的错误正文是以JSON还是未格式化的文本/其他方式返回?我有一个类似的问题,直到我意识到身体返回错误结果是一个简单的字符串。我不得不将调用更改为与此类似的内容(原谅缺少类型安全性):

this.http.post('http://address', body, { responseType: 'text' })
        .subscribe(data => {
            this.result = data['value'];
            this.router.navigate(['/route']);
        }, (error: HttpErrorResponse) => {
            this.error = error.error;
            this.router.navigate(['/error']);
        });

答案 1 :(得分:0)

这是angular中的已知错误,它在json解析期间抛出异常而不填充错误字段:

https://github.com/angular/angular/pull/18466