You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 10调用API返回纯文本解析报错,如何指定响应数据类型为文本

Angular 10调用返回纯文本接口的解决方案

Angular HttpClient默认会将响应内容按照JSON格式解析,你只需要在请求配置中添加responseType: 'text'参数,即可指定本次请求按纯文本处理响应,同时不会影响原有的Content-Type请求头配置,完全满足接口要求传递JSON请求体的需求。

修改方案

方案1:直接针对本次请求单独配置

修改create方法的请求参数,在请求配置中扩展responseType属性:

public create = (route: string, body: any) => {
    return this.http.post(
      this.createCompleteRoute(route, this.envUrl.urlAddress), 
      body, 
      // 扩展原有headers配置,新增响应类型设置
      {
        ...this.generateHeaders(),
        responseType: 'text'
      }
    );
}

private generateHeaders = () => {
    return {
      headers: new HttpHeaders({'Content-Type': 'application/json'})
    }
}

方案2:封装通用配置适配多场景

如果存在多个需要返回纯文本的接口,可以对generateHeaders方法做扩展,灵活适配不同响应类型的需求:

public create = (route: string, body: any) => {
    // 传参指定本次请求响应类型为文本
    return this.http.post(
      this.createCompleteRoute(route, this.envUrl.urlAddress), 
      body, 
      this.generateHeaders('text')
    );
}

// 新增可选的响应类型参数,默认还是JSON
private generateHeaders = (respType: 'json' | 'text' = 'json') => {
    return {
      headers: new HttpHeaders({'Content-Type': 'application/json'}),
      responseType: respType
    }
}

注意事项

  • responseType是请求配置的顶级属性,不要放到HttpHeaders的配置项中
  • 配置完成后接口返回的结果直接是字符串类型,无需再做额外的JSON解析处理

内容的提问来源于stack exchange,提问作者User1899289003

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 08:15:00