Установите HTTP responseType как arraybuffer

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

Вот ошибка:

Аргумент типа '{responseType: "arraybuffer"; } 'не может быть назначен параметру типа' {headers ?: HttpHeaders | {[заголовок: строка]: строка | нить[]; }; соблюдать ?: "тело"; params ?: Ht ... '. Типы свойства responseType несовместимы. Тип «arraybuffer» не может быть назначен типу «json». Версия: машинопись 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' });
}

person Neji Soltani    schedule 10.08.2018    source источник


Ответы (2)


this.http.get<any>

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

person Alexander    schedule 10.08.2018

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

Пытаться:

showfile(file?: any): Observable<HttpResponse<Blob>> {
    return this.http.get(SERVER_API_URL + `leave/api/downloadFile/${file}`, { responseType: 'blob' });
}
person Alexandre GC    schedule 10.08.2018
comment
который возвращает Тип 'blob' не может быть назначен типу 'json' - person Neji Soltani; 10.08.2018