Javascript 如何告诉浏览器不要缓存ajax响应

Javascript 如何告诉浏览器不要缓存ajax响应,javascript,ajax,caching,Javascript,Ajax,Caching,我对一个.js文件进行ajax调用。JS文件缓存在memcache上。目前,chrome、Firefox和IE浏览器正在缓存ajax响应。有没有办法告诉浏览器不要缓存ajax响应。注意-我仍然希望ajax调用获取JS文件的mem-cached版本,而不是来自服务器的版本,因此设置缓存头或向ajax url添加随机值将不起作用,因为它将绕过mem-cache 注意-有两种类型的缓存。一个是浏览器缓存,另一个是我的服务器和浏览器之间的缓存。对我的服务器的每个请求都通过memcache。我不想清除me

我对一个.js文件进行ajax调用。JS文件缓存在memcache上。目前,chrome、Firefox和IE浏览器正在缓存ajax响应。有没有办法告诉浏览器不要缓存ajax响应。注意-我仍然希望ajax调用获取JS文件的mem-cached版本,而不是来自服务器的版本,因此设置缓存头或向ajax url添加随机值将不起作用,因为它将绕过mem-cache

注意-有两种类型的缓存。一个是浏览器缓存,另一个是我的服务器和浏览器之间的缓存。对我的服务器的每个请求都通过memcache。我不想清除memcache,我只想清除浏览器缓存


感谢您的帮助。

您可以从提供这些js文件的web服务器控制缓存的过期时间。您可以在此处阅读有关缓存头的更多信息:

在url中添加一个带有随机值的参数,例如:

var url = "http://example.com/some_url/myjs.js?r=" + Math.random()



更新:如果它像您在评论中所说的那样绕过了您的memcache,您应该检查读取memcache的服务器端条件。

如何向请求参数添加时间戳?您如何启动ajax调用?您使用的是jQuery$.ajax吗?无论您如何操作,GET请求都由浏览器缓存。如果使用jQuery,可以将cache设置为false以避免出现这种情况。否则,您可以尝试使用POST请求来获取数据,因为这些请求没有被缓存。@Joel我正在使用jQuery。设置cache:false会将_randomNumber添加到ajax url,正如我所说的,它将绕过mem缓存并命中我的服务器。POST也会这样做(绕过mem缓存)。@webDeveloper您能澄清一下您的问题吗?您正在通过ajax加载.js文件?根据您的请求的措辞,听起来好像您不想缓存检索到的文件,但希望从缓存中检索到。
var url = "http://example.com/some_url/myjs.js?param1=value1&r=" + Math.random()