简短:我是新手,但我会尽力直接询问,但请尽量原谅我;)
我正在寻找解决问题的方法一段时间和两个主题:
接近并展示一些很棒的解决方案,不幸的是它们不符合我的情况。
我需要使用jQuery.ajax()调用向IP Camera发送CGI命令。我正在经常改变结果。所以我不能让浏览器缓存结果!我知道并且经常阅读有关此选项的信息(请参阅主题1。):
$(document).ready(function() {
$.ajaxSetup({ cache: false });
});
但是这在我的情况下不起作用,因为相机CGI命令结构不能与附加到命令的时间戳一起使用。因此,我没有得到我需要的答案,而是会收到错误。
之后我想,我可以采用jQuery代码来删除设置选项'cache:false'时附加的时间戳。但在我阅读了一些评论后(见主题2):
因此,如果你使用cache:false,jQuery只需添加一个额外的参数 使用当前时间到URL。它为本地浏览器提供了URL 另一个,因为它可能在本地缓存中,并转发 请求到服务器。没什么。
所以我发现这对我没有帮助。
主题2的一个解决方案是在服务器响应头中添加等于“max-age = 0”的“Cache-Control”,其关闭本地兑现。但是它再次对我不起作用,因为我无法访问或者无法访问IP摄像机的软件。
我认为一种解决方案是停用或删除该特定呼叫的缓存。 另一种解决方案可能是通过任何其他方式停止缓存。
当我连续两次调用ajax事件时,是否有人知道如何让Web浏览器停止使用缓存的答案? (重新加载网站会有所帮助,但在这种情况下也是不行的。)
提前感谢所有答案,如果您需要更多信息以使我的问题更加清晰,请随时提出。
的问候, lihume
答案 0 :(得分:0)
尝试为每个请求添加随机参数。 param.cgi CMD = getinfrared&安培; FIXME = 21EC2020-3AEA-1069-A2DD-08002B30309D
为每个请求生成一个新的GUID,这将使浏览器认为它是第一次请求新资源。 CGI软件应该忽略额外的论点......
答案 1 :(得分:0)
您没有指定您使用的服务器,因此我不确定这是否适合您。
您可以使用.htaccess
这适用于所有Unix类型的服务器,但您需要完全访问权限才能安装它。
<FilesMatch "\.(php|cgi|pl|htm)$">
ExpiresActive Off
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>
这是一个关于如何在IIS上使用Htaccess的线程