Как не кэшировать AJAX POST в приложении для мобильных сафари?

Благодаря этому сообщению я смог решить проблему, когда мобильное сафари будет кэшировать ajax POST-запросы. Добавление "заголовков: {" Cache-Control ":" no-cache "}", похоже, сделал трюк для моей страницы в мобильном сафари.

Однако, когда я обращаюсь к своему веб-сайту через веб-приложение safari для мобильных устройств, запросы ajax по-прежнему сохраняются в кеше. Я не смог найти решение, поэтому подумал, что отправлю сюда. В дополнение к добавлению заголовка, упомянутого выше, я также попытался добавить "cache: false", а также поставить "url: '/ajax_url? V =' + time". Кажется, что ничего не работает.

Почему различное поведение в мобильном сафари по сравнению с webapp? Как это разрешить?

EDIT:

Забыл мой код. Вот он:

function send_ajax(my_data,refresh){ 
    var now = new Date();
        var n = now.getTime();
    $.ajax({  
      url: "/ajax_page?time=" + n,
      type: "POST",
      headers: {"cache-control": "no-cache"},
      data: my_data,
      dataType: 'json'
      })
      .fail( function (jqXHR, textStatus, errorThrown){
      })
      .done(function(data){ // refresh the page after we get the results
        if(refresh=='true'){
            var pathArray = window.location.pathname.split('/');
            window.location.href = '/' + pathArray[1];

        }
      });         

    }

 send_ajax({'my_checkbox': $('#my_checkbox').is(':checked') },'true');  

Ответы

Ответ 1

Одним из решений, которое всегда работает, является добавление параметра в запрос, который имеет время, в течение которого был выполнен запрос (отметка времени по существу). Это делает каждый запрос уникальной снежинки, на которой должен работать сервер.

Схожая с идеей размещения версии вашего сайта во имя всех ваших файлов script/css, чтобы пользователи, которые приходили на ваш сайт после обновления, загружали новые файлы.