如何在移动Safari浏览器应用程序中缓存AJAX POST?

感谢这篇文章,我能够解决移动Safari会缓存ajax POST请求的问题。 添加“标题:{'Cache-Control':'no-cache'}”似乎为我的移动Safari浏览器的窍门。

但是,当我通过移动Safari浏览器访问我的网站时,ajax请求仍然被缓存。 我一直无法找到解决方案,所以我想在这里发布。 除了添加上面提到的头部之外,我还尝试添加“cache:false”,并将“url:'/ ajax_url?v ='+ time”加入。 似乎没有任何工作。

为什么移动Safari浏览器与Web应用程序的不同行为? 我该如何解决这个问题?

编辑:

忘记我的代码。 这里是:

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文件名称的想法,以便更新后到达您网站的用户必须下载新文件。

链接地址: http://www.djcxy.com/p/9497.html

上一篇: How do I not cache AJAX POST in mobile safari app?

下一篇: How to return an array from jQuery ajax success function properly?