오랜 고민 끝에 프로그램은 jquery의 로드 메서드를 사용하여 요청을 두 번째로 보낼 수 없는 이유가 이상합니다. 바이두에서 좀 조사해봤는데 get 메소드를 사용해서 로드를 요청하는 걸 몰랐기 때문에 IE 브라우저가
에 응답하지 않습니다.캐시되었습니다. 온라인에서 많은 솔루션을 검색했는데 여기에 더 포괄적인 솔루션이 있다고 생각합니다. 크게 클라이언트 측 솔루션과 서버 측 솔루션으로 구분됩니다.
1. 클라이언트 솔루션
IE 액세스 정책: 인터넷 옵션--검색 기록--설정--임시 인터넷 파일 옵션을 방문할 때마다 변경할 수도 있습니다. 웹페이지에서 사용
1: AJAX가 요청한 페이지 뒤에 무작위 기능을 추가하면 무작위 시간 기능을 사용할 수 있습니다
javascript에서 보낸 URL 뒤에 t=Math.random()을 추가하세요.
예: URL "&" "t=" Math.random() 또는 new Date();
2: XMLHttpRequest가 요청을 보내기 전에 XMLHttpRequest.setRequestHeader("If-Modified-Since", "0")를 추가합니다.
일반적으로 여기서 XMLHttpRequest는 직접 사용되지 않습니다.다음과 같은 코드를 찾을 수 있습니다.
XXXXX.send(YYYYYY)
그런 다음
XXXXX.setRequestHeader( "수정된 이후","0")
XXXXX.send(YYYYYY);
실습을 통해 두 가지 방법 모두 매우 효과적이라는 것이 입증되었습니다.
1. 서버에 헤더("Cache-Control: no-cache, must-revalidate")를 추가합니다. 2. xmlHttpRequest.setRequestHeader("If -Modified-Since", "0"); 3. Ajax로 요청을 보내기 전에 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache")를 추가합니다. 4. Math.random(); //물론 여기에서 새로운 매개변수를 임의로 선택할 수 있습니다.
5. 네 번째 방법은 세 번째 방법과 유사하며, URL 매개변수 뒤에 "?timestamp="를 추가합니다 new Date().getTime( ); //이 방법을 권장합니다
6. GET 대신 POST를 사용하세요. 권장하지 않음
2. 서버측 솔루션:
Struts2를 예로 들어 보겠습니다. Struts2 서버측 사용
Xml 코드
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache"); response.setHeader(" 만료", "-1");
}
return invocation.invoke();
}
}