感谢这篇文章,我能够解决移动safari缓存ajax POST请求的问题。添加“标题:{'Cache-Control':'no-cache'}”似乎可以解决我在移动游猎中的页面问题。
但是,当我通过移动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');
答案 0 :(得分:2)
一个始终有效的解决方案是向请求添加一个参数,该请求具有请求的时间(基本上是时间戳)。这使得每个请求都成为服务器必须处理的独特雪花。
类似于将您的网站版本放入所有脚本/ css文件名称的想法,以便更新后访问您网站的用户必须下载新文件。