ajax 의 IE cache 관련 문제 해결
function verify() {
$.ajax({
//issue for IE cache; timestamp=" + new Date().getTime()
url:"checkGroupName?timestamp=" + new Date().getTime(),
async: true,
data:"groupName=" + $("#cn").val()+"&groupTypeForDetail="+$("#groupType").val()+"&prefix="+$("#p").val(),
dataType:"html",
success:function(data){
if(data==1){
$("#result").html("<font color='green'>Group name["+$("#p").val()+ $("#cn").val()+"]Valid</font>");
$("#email").val($("#p").val()+ $("#cn").val()+$("#emailHidden").val());
$('#subData').removeAttr("disabled");
}else if(data==2){
$("#result").html("<font color='red'>Group name["+$("#p").val()+ $("#cn").val()+ "]already existed.</font>");
$('#subData').attr('disabled',"true");
}else{
$("#result").html("<font color='red'>Group name can not be empty.</font>");
$('#subData').attr('disabled',"true");
}
}
});
}
원리:Firefox 는 매번 request 에 다시 server 로 돌아 가 최신 데 이 터 를 얻 지만 IE 는 다 릅 니 다.cache 가 살 기 전에 얻 은 데 이 터 는 첫 번 째 request 에 만 서버 에서 데 이 터 를 읽 기 때문에 ajax 데 이 터 는 시간 에 따라 새 로 워 지지 않 습 니 다.솔 루 션(인터넷 에서 수집 한):1.서버 에 header("Cache-Control:no-cache,must-revalidate")를 추가 합 니 다.또는 아래 의 조합 을 사용 하 는 것 이 좋 습 니 다
header("Expires: Sat, 1 Jan 2005 00:00:00 GMT");
header("Last-Modified: ".gmdate( "D, d M Y H:i:s")."GMT");
header("cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
2.ajax 가 요청 을 보 내기 전에 xmlHttpRequest.setRequestHeader("If-Modified-Since","0")를 추가 합 니 다.3.ajax 에서 요청 을 보 내기 전에 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache")를 추가 합 니 다.4.Ajax 의 URL 인자 뒤에'?fresh=" + Math.random(); //물론 여기 서 파 라 메 터 fresh 는 5,네 번 째 방법 과 세 번 째 유사 한 것 을 임의로 취 할 수 있 습 니 다.URL 파 라 메 터 를 추가 한 후에'?timestamp=" + new Date().getTime(); //이런 방식 을 추천 합 니 다.제 가 사용 하 는 것 은 바로 이런 것 입 니 다.개인 적 으로 편리 하 다 고 생각 합 니 다.6.GET 대신 POST 사용:추천 하지 않 음
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Javascript Ajax에 대한 간단한 연습저는 약 4년 동안 프로그래밍 개인 튜터로 일한 경험이 있습니다. 약 5년 전에 " "이라는 제목의 페르시아어로 내 웹사이트에 블로그 게시물을 올렸고 사람들이 저에게 전화하기 시작했습니다. 나는 항상 사람들을 가르치...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.