2010-10-21 76 views
10

似乎除Opera缓存XHR请求之外的所有浏览器都在我的Javascript程序中。 XHR请求中的URL指的是服务器上的CGI程序,它每次调用时都会生成不同的输出。 B 在Javascript中有没有办法让浏览器不缓存XHR请求?阻止xmlHttpReq的浏览器缓存

回答

10

您每一次的AJAX请求,生成一个唯一的值,并将其添加到AJAX URL作为查询参数:

/example/url/post.php?rand=09809807896768 

我用它来生成JS当前Unix时间戳和使用 - 这保证我没有得到重复的邮票。

这样每个请求都是唯一的,不会被缓存。这是一个简单但相当常见的AJAX技巧 - 通常修复IE和测试问题。

如果您要使用jQuery,它可以通过在AJAX settings上将属性缓存设置为false来执行此操作。

+0

谢谢。我尝试添加新的Date()。getTime(),它也起作用。 – Girish 2010-10-21 07:06:58

+0

我试图实现您的解决方案时出现错误:“访问控制允许标题”不允许请求标头字段编译指示。任何想法如何避免这种情况?看:http://stackoverflow.com/questions/23048184/xmlhttprequest-with-no-cache-request-header-is-not-allowed – 2014-04-14 00:19:11