我怎么不在移动safari应用程序中缓存AJAX POST?

感谢这篇文章,我能够解决移动safari将缓存ajax POST请求的问题。 添加“标题:{‘Cache-Control’:’no-cache’}”似乎可以为我的移动safari页面做点什么。

但是,当我通过移动safari webapp访问我的网站时,仍然会缓存ajax请求。 我无法找到解决方案,所以我想发布在这里。 除了添加上面提到的标题之外,我还尝试添加“cache:false”,并添加“url:’/ ajax_url?v =’+ time”。 似乎没什么用。

为什么移动safari与webapp的不同行为? 我该如何解决这个问题?

编辑:

忘了我的代码。 这里是:

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