Angular 8 HttpClient “Http failure during parsing”

使用 Angular HttpClient 在进行请求时,遇到异常:"Http failure during parsing",查看网络会发现其实请求已经成功了,只是说一个类似转型失败的错误。

一般情况下的解决方法是修改 responseType,修改为正确的类型即可。

例如我的请求返回的实际上是一个 text,然而如下代码默认要求 responseTypejson

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" })
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容