codestates / codestates/BanThing
[Error Handling] axios 요청시 response.status 가 인식되지 않는 현상
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
### 어떤 에러인가요?
- axios 요청 후 response.status 에 따른 조건문을 작성하려고 했으나,
response.status 가 401 이 오는 경우 조건문에서 걸러지지 않고 에러가 발생합니다.

```javascript
axios
.post(`http://${process.env.NEXT_PUBLIC_SERVER_ENDPOINT}/users/login`, {
user_id: userId,
password: password,
})
.then((response) => {
if (response.status === 401) {
setLoginMessage('아이디 또는 비밀번호가 일치하지 않습니다.');
}
});
```
### 에러 핸들링 방법
- 팀장님이 알려주신 바에 따르면 response 의 status 가 4 로 시작하는 순간, error 로 판단이 되기 때문에
.then 의 조건문 안에 적용이 될 수가 없다고 합니다.
```javascript
axios
.post(`http://${process.env.NEXT_PUBLIC_SERVER_ENDPOINT}/users/login`, {
user_id: userId,
password: password,
})
.then((response) => {
const { accessToken } = response.data.data;
localStorage.setItem('accessToken', accessToken);
prop.setAccessToken(accessToken);
prop.setIsLogin(true);
prop.setLoginModal(false);
})
.catch((error) => {
if (error)
setLoginMessage('아이디 또는 비밀번호가 일치하지 않습니다.');
});
```
- 따라서 위와 같이 먼저 정상적으로 response 를 받아오는 경우에 대해 코드를 작성하고,
그 다음 에러에 대해 코드를 작성하니 정상적으로 잘 작동했습니다. :3
팀장님 감사합니다~
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.