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

我有这个代码:

$.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获取的页面永远不会被缓存,因此jQuery.ajaxSetup()中的缓存和ifModified选项对这些请求没有影响。

来自http://api.jquery.com/jQuery.post/

部分正确,丹尼尔A.怀特 !

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

你能做的是以下几点:

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

你提到$ .ajax

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

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

这是一个老问题,似乎不时出现,我总是摸不着头脑。 这个解决方案解决了这个问题,但它可能并不适用于所有情况,因为它实际上禁用了AJAX的一个关键特性 – 异步function。 对于我遇到过这个问题的情况说法和做了 – Apple产品和Safari我特别关注你 – 在你的jQuery AJAX请求中设置async:false的附加参数修复了这个问题并且实际上解决了“No Alert on on发布回调“问题。

正如我所说,如果你完全依赖于异步function,那么这对你没有帮助,但对于很多项目来说,它会阻止你拉扯你的头发。

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