얼마전 회사에서 WEB-APP으로 만든 프로그램이 IOS6에서 문제가 발생한다고 연락이 왔습니다.


그래서 테스트를 해보았더니..


동일한 AJAX를 두번 날리면, 먼저 날린 거래를 cache리하는 문제가 발생하는 것입니다.


....귀찮은 문제네요.ㄱ-;


하지만 어쩔수 없이 해결하기 위해 여러가지 테스트를 해보았습니다.


그중에 가장 확실한 방법은 header값을 담아서 날리면 되는것 같더군요.^^


다행히 AJAX util을 추상화 해놓아서.


공통 js파일 하나만 수정해서 해결이 되었습니다.



jQuery를 사용하신다면 아래 Header부분을 추가해주시면 정상적으로 거래가 이루어집니다.


물론 cache옵션은 false로 주는게 좋겠죠?.^^


jQuery.ajax( { type : "POST",

url : "url....",

data : {/*요청값*/},

cache : false,

async : false,

headers: { "cache-control": "no-cache","pragma": "no-cache" },

error : function(xhr, textStatus, errorThrown) {

// 에러시 처리

                                        },

success : function(msg) {


// 처리 로직..


 }

); 



아마 Safari ( 사파리 )에서도 동일한 증상이 있을것으로 예상됩니다.^^ 

  1. 청명의 전조 2013.01.03 18:34 신고

    처음 aJax 요청은 정상적으로 동작하고 다음 동작부터 기존 요청 값이 반복해서 나와 구글링으로 찾다보니 도착했네요 :D 좋은 정보 감사합니다!

    • Favicon of http://iamgil.com BlogIcon 길OI 2013.01.25 13:52 신고

      도움이 되었다니 다행입니다.^^

      자주 찾아와주세요..ㅎㅎ

      근데 쥔장이 게흘러서 글을 잘 안쓰네요.ㅠㅠ

+ Recent posts