문제 발생
비동기로 동작하는 API의 요청으로 특정 값을 바꿨을 때, DB는 바뀌었는데 브라우저에서는 계속 변경 전 값만 보이는 이슈가 발생했다.
특이한 점은 Chrome, Edge 모두 정상 동작했지만, Internet Explorer(IE)만 이 현상이 발생했다는 점이다.
몇 번 이슈를 재현해보니, IE에 캐싱 때문에 이런 이슈가 발생한 것을 알았다.
해결 방법
처음에는 프론트에서 해결할 수 있을 줄 알았는데, 아니었다.
응답을 보내주기 전에 아래 코드를 추가해 주면 된다.
public anyDto anyMethod(..., HttpServletResponse response) {
//someting
response.setHeader("Cache-Control","no-store"); // 추가
return anyDto;
}
no-store과 no-cache의 차이점은 여기에 자세히 설명이 되어있다.