我在构建jhipster项目时遇到一个错误,它说我需要在get
请求中更改参数responseType
。
下面是错误:
类型“{ responseType:“array”;“}”不能分配给类型为“{ headers?:HttpHeaders| { [header:string]:弦|String[]; }; observe?:“body”; params?:Ht...'。属性“responseType”的类型不兼容。类型“arraybuffer”不能分配给类型“json”。版本:typescript 2.7.2
正如你所看到的,typescript
告诉我将值从arraybuffer
更改为json
,但我需要将其保留为arraybuffer
,因为我正在处理一个文件,并且我完全知道responseType
可以设置为arraybuffer
,blob
,json
或text
。
这是密码
showfile(file?: any): Observable<any> {
return this.http.get<any>(SERVER_API_URL + `leave/api/downloadFile/${file}`, { responseType: 'arraybuffer' });
}
3条答案
按热度按时间rn0zuynd1#
删除任何
6qqygrtg2#
当我需要调用一个返回文件的端点时,我通常使用类型
Observable<HttpResponse<Blob>>
。尝试:
s4n0splo3#
PDF文件使用ArrayBuffer;此模式适用于GET动词:
一些注意事项:
1.如果url是不返回文件流的API端点(例如APPLICATION_OCTET_STREAM),而不是使用JSON输出进行响应,您不能使用不匹配的responseType。
1.如果你的编辑器和/或npm构建抛出错误,你可能需要创建一个对象来包含responseType,如下所示:
1.您可能只需要POST请求的显式响应类型,如下所示: