Установите http responsetype как arraybuffer

Я столкнулся с ошибкой при создании проекта jhipster, в котором говорится, что мне нужно изменить параметр responseType в запросе get.

Вот ошибка:

Argument of type '{ responseType: "arraybuffer"; }' is not assignable to parameter of type '{ headers?: HttpHeaders | { [header: string]: string | string[]; }; observe?: "body"; params?: Ht...'. Types of property 'responseType' are incompatible. Type '"arraybuffer"' is not assignable to type '"json"'. Version: 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' });
}
0
0
4 560
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Когда мне нужно вызвать конечную точку, возвращающую файл, я обычно использую тип Observable<HttpResponse<Blob>>.

Пытаться:

showfile(file?: any): Observable<HttpResponse<Blob>> {
    return this.http.get(SERVER_API_URL + `leave/api/downloadFile/${file}`, { responseType: 'blob' });
}

который возвращает Тип "blob" нельзя присвоить типу "json"

Neji Soltani 10.08.2018 14:46
Ответ принят как подходящий
this.http.get<any>

Удалите любые

Другие вопросы по теме