没有重载匹配此调用。最后一次重载给出了以下错误。类型“” text”不能分配给类型““ json””

时间:2019-11-19 09:47:29

标签: javascript angular xmlhttprequest jwt angular-httpclient

我正在尝试使用Angular在标头中使用JWT令牌从我的API获取HTML页面。但是,如果我不指定文本类型,则编译器会弹出无法解析错误(然后它将尝试将HTML解析为JSON),因此我需要指定响应类型。

这是我的component.ts:

  httpOptions = {
    headers: new HttpHeaders({
      'Content-Type':  'application/json',
      'Authorization': 'Bearer TOKENHERE'
    })
  };
  constructor(private http: HttpClient) { }

  ngOnInit() {


  }
  fetchDashboard() {
    this.http.get('http://localhost:3000/avior/dashboard', {responseType: 'text', this.httpOptions,}).subscribe(j => console.log(j));
}
}

我尝试将内容类型删除或更改为text / html,但无济于事。


我的API响应:

<html><head><title>Dashboard</title></head><body><h1>Dashboard works!</h1></body></html>

2 个答案:

答案 0 :(得分:4)

我是这样做的:

    getDivisionName(x: string): Promise<any> {
    return this.httpClient
      .get<any>(this.serviceUrl + `/something/${x}/`, {
        responseType: 'text' as 'json',
      })
      .toPromise();
  }

答案 1 :(得分:1)

您可以在组件中尝试以下操作,以查看您的呼叫是否对另一个网站有效。以下内容应以字符串形式返回请求页面的html。如果这不适用于您的API,那么问题可能不在于您的组件中的代码,而是您的API返回的响应

> select n.nspname as function_schema,
> 
> p.proname as function_name
> 
> from pg_proc p
> 
> left join pg_namespace n on p.pronamespace = n.oid
> 
> where n.nspname not in ('pg_catalog', 'information_schema')
> 
> order by function_schema, function_name;