Axios 요청을 할때 responseType을 blob으로 설정하면 error response조차 blob으로 반환되었다.
blob으로 반환된 response를 Blob 객체의 text메소드를 사용해서 문자열로 변환한다.
이 문자열을 다시 json으로 변환해서 기존처럼 사용할 수 있다.
다만 Blob.text() 메소드는 비동기로 작동하므로 async, await를 사용해야 한다.
...
} catch (error) {
if (error.response) {
// responseType이 blob이기 때문에 error정보도 blob으로 오며, 이것을 json으로 다시 변환해 주어야 한다.
const responseData = JSON.parse(await error.response.data.text());
if (responseData.detail) {
alert(responseData.detail);
} else {
alert("Error");
}
} else if (error.request) {
alert("Network or Server has a problem.");
}
} finally {
...
axio 인터셉터에 에러핸들링 리팩토링중인데 도움이 많이 됬습니다 :-) 좋은하루 되세용