将jQuery$.post()中的缓存设置为false?

将jQuery$.post()中的缓存设置为false?,jquery,Jquery,我有以下代码: $.post("php/tagNotifUnsub.php", $("#tagNotifUnsub").serialize(), function(){ $('#tagSubDiv').load('tags.php #tagSubDiv', function(){$( "button, input:submit, input:button, a#jql, input:radio" ).button();}); }); 我知道

我有以下代码:

$.post("php/tagNotifUnsub.php", $("#tagNotifUnsub").serialize(), function(){ 
            $('#tagSubDiv').load('tags.php #tagSubDiv', function(){$( "button, input:submit, input:button, a#jql, input:radio" ).button();});      
        });

我知道$.post只是$.ajax的另一个名称。我知道$.ajax在默认情况下启用了缓存。我想把它打开。我该怎么做?

$。post
不会被缓存

使用POST获取的页面永远不会被删除 缓存,因此缓存和ifr都被修改 jQuery.ajaxSetup()中的选项没有 对这些请求的影响

在运行iOS6和Safari的设备上,POST也会被缓存

您可以执行以下操作:

$.ajaxSetup({
   type: 'POST',
   headers: { "cache-control": "no-cache" }
});
你提到$.ajax

您可以像这样关闭ajax的缓存:

$.ajax({
        url: "/myURL?",
        cache: false,
    });

这是一个老问题,似乎不时出现,我总是挠头。这个解决方案解决了这个问题,但它可能并不适用于所有情况,因为它实际上禁用了AJAX的一个关键特性——异步特性。在我遇到这个问题的情况下——我特别关注的是苹果产品和Safari——在jQuery AJAX请求中设置额外的参数
async:false
,解决了这个问题,并实际解决了“回调后无警报”问题

正如我所说的,如果您完全依赖异步功能,那么这将不会对您有所帮助,但对于许多项目来说,这将阻止您的努力

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType,
  async:false
});

这不完全是真的,IOS 6上的Safari缓存了POST请求,这很疯狂,但这是真的。[我正在使用GET ajax调用,这最终解决了问题。由于某些原因,一些请求被缓存,而我得到的数据不正确。