500 에러가 발생할 때 API 응답으로 {code: string, message: string}을 받고 있었다.
그래서 인터셉터에서 response.data.message로 공통 에러 메시지를 처리했는데,
엑셀 다운로드 API에서는 undefined가 나왔다.
엑셀 다운로드 API는 responseType을 blob으로 설정하기 때문에 응답이 blob 형태로 온다.
따라서 메시지를 얻기 위해서는 blob 데이터를 텍스트로 변환한 후 JSON 파싱이 필요하다.
let errorMessage = '관리자에게 문의하세요';
if (response.request.responseType === 'blob') {
const errorText = await response.data.text();
errorMessage = JSON.parse(errorText).message;
} else {
errorMessage = response.data.message;
}