使用 Angular HttpClient 在进行请求时,遇到异常:"Http failure during parsing"
,查看网络会发现其实请求已经成功了,只是说一个类似转型失败的错误。
一般情况下的解决方法是修改 responseType,修改为正确的类型即可。
例如我的请求返回的实际上是一个 text,然而如下代码默认要求 responseType 是 json
this._http
.post(url, params, { headers: header })
.subscribe(
(data: any) => {
console.log('success')
},
error => {
console.log(error)
}
);
可以通过查看 post 函数源码发现,默认情况下,相应类型被定义为 json,所以只需要修改这个值即可解决问题。
/**
* Construct a POST request which interprets the body as JSON and returns it.
*
* @return an `Observable` of the body as an `Object`.
*/
post(url: string, body: any | null, options?: {
headers?: HttpHeaders | {
[header: string]: string | string[];
};
observe?: 'body';
params?: HttpParams | {
[param: string]: string | string[];
};
reportProgress?: boolean;
responseType?: 'json';
withCredentials?: boolean;
}): Observable<Object>;
修改很简单:
.post(url, params, { headers: header, responseType: "text" })