首页 > 解决方案 > 由于解析为 JSON,从 API 加载文件导致错误

问题描述

我正在从 API 加载 xlsx 文件。但是加载会导致错误,因为 Angular 尝试将主体解析为 JSON。

如果我直接向请求提供这样的响应类型,它就可以工作:

this.http.get(this.url + "/getExcel",{responseType:'blob'});

但在我的后端,我还需要授权。如果我给请求一个 HttpHeaders 对象,它就不起作用:

const headers = new HttpHeaders({
    responseType:'blob',
    'Content-Type': 'application/json',
    'Authorization': this.authService.getToken()
})
this.http.get(this.url + "/getExcel",{headers});

我认为以上两者都应该这样做。不应该吗?

标签: angulartypescript

解决方案


你组合了错误的东西。你应该做这个:

const headers = new HttpHeaders({ 
    'Content-Type': 'application/json',
    'Authorization': this.authService.getToken()
})
this.http.get(this.url + "/getExcel",{
    headers,
    responseType: 'blob'
});

推荐阅读