如何在移动safari应用程序中不缓存AJAX POST



多亏了这篇文章,我解决了移动safari将缓存ajax post请求的问题。在移动safari中,添加"headers:{‘Cache-Control':'无缓存'}"似乎对我的页面起到了作用。

然而,当我通过移动safari网络应用程序访问我的网站时,ajax请求仍然被缓存。我一直找不到解决方案,所以我想在这里发帖。除了添加上面提到的头,我还尝试添加"cache:false",以及添加"url:'/ajax_url?v='+time"。似乎什么都不管用。

为什么移动safari与网络应用程序的行为不同?如何解决此问题?

编辑:

忘记了我的密码。这是:

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');  

一个始终有效的解决方案是向请求添加一个参数,该参数具有发出请求的时间(本质上是时间戳)。这使得每个请求都成为服务器必须处理的唯一雪花

这类似于将网站的版本放入所有脚本/css文件的名称中,以便更新后访问您网站的用户必须下载新文件。

相关内容

  • 没有找到相关文章

最新更新