source

jQuery Ajax 요청이 Internet Explorer에서 캐시되지 않도록 방지하는 방법은 무엇입니까?

manysource 2023. 6. 4. 10:38

jQuery Ajax 요청이 Internet Explorer에서 캐시되지 않도록 방지하는 방법은 무엇입니까?

jQuery Ajax 요청이 Internet Explorer에서 캐시되지 않도록 하려면 어떻게 해야 합니까?

다음과 같은 예를 사용하여 전체적으로 캐싱을 사용하지 않도록 설정할 수 있습니다.

$.ajaxSetup({ cache: false });

이렇게 하면 요청할 때 쿼리 문자열에 타임스탬프가 추가됩니다.특정 통화에 대해 캐시를 끄려면 설정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/

이 방법은 현재 날짜를 포함하는 매개 변수를 시간에 추가하여 브라우저가 이 매개 변수를 캐시할 수 없도록 하는 것입니다.

링크를 보세요, 잘 설명되어 있습니다.

다음과 같이 정의할 수 있습니다.

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가 더 이상 요청을 캐시하지 않습니다.

너무 많은 시간을 들여 어렵게 해결했습니다.도움이 되길 바랍니다.

언급URL : https://stackoverflow.com/questions/4303829/how-to-prevent-a-jquery-ajax-request-from-caching-in-internet-explorer