Reactjs - архив zip загружается с ошибкой - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь загрузить zip-архив из API с помощью приложения reactjs. Он загружается, но затем открывается с ошибкой Неожиданный конец архива . Загрузка архива через Talend API Tester работает корректно. Вот код для получения архива и загрузки:

Сервис

public getCsvArchive(): Promise<any> {
    return new Promise((result, error) => {
        axios.post(config.prepareRestUrl('/api/export'), {
            responseType: 'arraybuffer', // <-- also tried to use 'blob' response type
            headers: {
                'Content-Type': 'application/zip; charset=utf-8'
            }
        })
            .then((response) => {
                result(response.data);
            }, (err) => {
                error(err);
            });
    });
}

Компонент

async handleDownload() {
    return await Service.getCsvArchive().then(result => {
        const url = window.URL.createObjectURL(new Blob([result], { type: 'application/zip' }));
        const a = document.createElement('a');
        document.body.appendChild(a);
        a.setAttribute('style', 'display: none');
        a.href = url;
        a.download = "export.zip";
        a.click();
        window.URL.revokeObjectURL(url);
        a.remove();
    });
}

Здесь снимок экрана: заголовки запроса и ответа: enter image description here и полезная нагрузка запроса: enter image description here

Также при использовании API-тестера размер архива составляет 8 КБ, но при загрузке из приложения он имеет размер 15 КБ.

ОБНОВЛЕНИЕ

Запрос не работает только при использовании метода POST.

...