본문 바로가기

프로그래밍

Jquery Ajax cache 문제

AngularJS를 사용하기 시작한 후부터 jquery는 거의 보지 않았는데...


jquery로 클라이언트에서 ajax 요청을 날렸는데 microsoft edge로 보니까 처음에만 서버에서 받은 결과값이 원하던 결과값이고 그 이후부터는 서버의 결과값이랑 달랐다.


이건 뭐지...? 했는데,


크롬으로 띄우니 잘 나오더라.


ajax 요청을 $.getJson 으로 날리고 있었기 때문에, 해당 method에 대한 jquery 문서를 확인해보니


ajax 요청을 날릴 때 cache property가 있고 이게 default 값이 true다.


특정 브라우저에서는 이 cache property를 활용해서 ajax 요청이 브라우저 cache에 있을 경우... 서버에 요청을 날리지 않고, 브라우저에서 기존 결과값을 사용한다.


따라서, 매번 서버에 요청을 날리고 싶으면


$.ajax({
cache: false,
dataType: "json",
url: '/dockerhub/repositories/tags',
data: {name: val}


});

위와 같은 형태로 cache: false를 줘야 한다.