【发布时间】:2017-05-17 15:37:43
【问题描述】:
this.http.put(url, data)
.map(response => response.json())
.subscribe(
response => console.log(response),
error => console.log(error),
);
成功时,它会输出从 API 返回的数据。出错时输出为 ProgressEvent,状态为 0。
发生错误时如何从API获取响应数据?
【问题讨论】:
-
你有没有试过看这个:stackoverflow.com/questions/37052617/…?
-
是的,它也在 catch 块中返回相同的 ProgressEvent。另外值得一提的是 Angular 版本:2.2.1
-
进度事件是否可能只是两个事件中的第一个,而常规错误事件仅在它之后出现?还是 http 调用只触发这一进度事件,之后什么也没有?
-
只给出这一个响应,之后什么都没有。 API 的状态码是 422
-
这看起来像是一个跨域问题(查找 CORS)。请求在 OPTIONS 命令上失败,因此服务器可能甚至没有收到请求。在将实际的 PUT 请求发送到服务器之前,客户端浏览器会引发错误。
标签: angular angular2-http