Internet Explorer에서 jQuery Ajax 요청이 캐시되지 않도록하려면 어떻게해야합니까?
답변
$.ajaxSetup()
예를 들어을 사용하여 전역 적으로 캐싱을 비활성화 할 수 있습니다 .
$.ajaxSetup({ cache: false });
요청시 쿼리 문자열에 타임 스탬프가 추가됩니다. 특정 $.ajax()
통화에 대해 캐시를 끄려면 다음 cache: false
과 같이 로컬로 설정 하십시오.
$.ajax({
cache: false,
//other options...
});
답변
고유 한 매개 변수를 설정하면 캐시가 작동하지 않습니다 (예 :
$.ajax({
url : "my_url",
data : {
'uniq_param' : (new Date()).getTime(),
//other data
}});
답변
Cache-Control: no-cache, no-store
이 두 헤더 값을 결합하여 IE와 Firefox 모두에 필요한 효과를 얻을 수 있습니다.
답변
답변 제안은 다음과 같습니다.
http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/
아이디어는 예를 들어 현재 날짜를 포함하는 ajax 쿼리에 매개 변수를 추가하여 브라우저가 캐시 할 수 없도록하는 것입니다.
링크를 살펴보면 잘 설명되어 있습니다.
답변
다음과 같이 정의 할 수 있습니다.
let table = $('.datatable-sales').DataTable({
processing: true,
responsive: true,
serverSide: true,
ajax: {
url: "<?php echo site_url("your url"); ?>",
cache: false,
type: "POST",
data: {
<?php echo your api; ?>,
}
}
또는 이와 같이 :
$.get({url: <?php echo json_encode(site_url('your api'))?>, cache: false})
그것이 도움이되기를 바랍니다
답변
이것은 오래된 게시물이지만 IE가 문제를 일으키는 경우입니다. GET 요청을 POST로 변경하면 IE는 더 이상 캐시하지 않습니다.
나는 이것을 어려운 방법으로 알아내는 데 너무 많은 시간을 보냈다. 도움이 되길 바랍니다.