Angular 8

Angular 8 HttpClient “Http failu

2019-03-19  本文已影响92人  bei6

使用 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" })
上一篇下一篇

猜你喜欢

热点阅读