Setting the cache in jQuery $.post() to be false?
我有这个代码:
1 2 3 | $.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有缓存。 我希望它被解除。 我怎样才能做到这一点?
Pages fetched with POST are never
cached, so the cache and ifModified
options in jQuery.ajaxSetup() have no
effect on these requests.
来自http://api.jquery.com/jQuery.post/
部分正确,丹尼尔A.怀特!
在运行iOS6和Safari的设备上,POST也会被缓存。
你能做的是以下几点:
1 2 3 4 | $.ajaxSetup({ type: 'POST', headers: {"cache-control":"no-cache" } }); |
你提到$ .ajax
您可以像这样关闭ajax的缓存:
1 2 3 4 | $.ajax({ url:"/myURL?", cache: false, }); |
这是一个老问题,似乎不时出现,我总是摸不着头脑。这个解决方案解决了这个问题,但它可能并不适用于所有情况,因为它实际上禁用了AJAX的一个关键特性 - 异步功能。对于我遇到过这个问题的情况说法和做了 - Apple产品和Safari我特别关注你 - 在你的jQuery AJAX请求中设置
正如我所说,如果你完全依赖于异步功能,那么这对你没有帮助,但是对于很多项目来说,它会阻止你拉扯你的头发。
1 2 3 4 5 6 7 8 | $.ajax({ type: 'POST', url: url, data: data, success: success, dataType: dataType, async:false }); |