#javascript #reactjs #rest #axios
#язык JavaScript #реагирует на #остальное #аксиос
Вопрос:
Мой код:
клиент отдыха:
return axios.get(url, { responseType: 'arraybuffer' });
обработка ответа:
const link = document.createElement('a'); link.href = window.URL.createObjectURL(new Blob([response.data])); link.target = "_blank"; link.click();
хорошо работает, если на стороне сервера нет ошибок. Однако, когда в API сервера возникает ошибка, я не получаю никаких подробностей об этом из-за типа ответа arraybuffer
.
.catch((error) =gt; { dispatch(showError("An Error Occured", error)); //error does not contain the expected details });
Я попытался не устанавливать тип arraybuffer, вместо этого используя TextDecoder, однако результирующий pdf, похоже, поврежден (пустое отображение).
Как я могу изменить существующую настройку, чтобы иметь возможность получать подробную информацию в случае возникновения ошибки?
Изменить: Решение: Хорошо, я понял, я могу расшифровать информацию об ошибке из error.data:
var data:any = JSON.parse(new TextDecoder().decode(error.data));
а затем используйте код ошибки и сообщение.
Комментарии:
1. я думаю, у вас есть проблема с пустым массивом в результате? так что это просто !!! не загружайте файл, когда результат
[]