我正在尝试使用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>
答案 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;