Angular2 http响应正文出错

时间:2017-01-03 14:05:09

标签: angular angular2-http

this.http.put(url, data)
    .map(response => response.json())
    .subscribe(
      response => console.log(response),
      error => console.log(error),
    );

成功后,它会输出API返回的数据。出错时输出为ProgressEvent,状态为0。

如何在发生错误时从API获取响应数据?

2 个答案:

答案 0 :(得分:0)

你可以试试

this.yourHttpCall().subscribe(
        val => {
            //do something
        },
        err => {
            let error = (() => { try { return JSON.parse(err._body) } catch (something) { return err })()
            console.log(error);
        }

    );

这是一种黑客攻击。不确定它是否适用于您的端点。

答案 1 :(得分:0)

您可以在回复中查看_body属性,例如:

this.http.put(url, data)
.map(response => {
  if (response['_body']) { // check response here.
    return response.json()
  } else {
    return {} // or return null.
  }
})
.subscribe(
  response => console.log(response),
  error => console.log(error),
);