【发布时间】:2011-04-28 10:48:29
【问题描述】:
似乎除 Opera 之外的所有浏览器都在我的 Javascript 程序中缓存 XHR 请求。 XHR 请求中的 URL 是指服务器上的 CGI 程序,每次调用它都会生成不同的输出。乙 Javascript 中有没有办法让浏览器不缓存 XHR 请求?
【问题讨论】:
标签: javascript ajax xmlhttprequest
似乎除 Opera 之外的所有浏览器都在我的 Javascript 程序中缓存 XHR 请求。 XHR 请求中的 URL 是指服务器上的 CGI 程序,每次调用它都会生成不同的输出。乙 Javascript 中有没有办法让浏览器不缓存 XHR 请求?
【问题讨论】:
标签: javascript ajax xmlhttprequest
对于您发出的每个 AJAX 请求,生成一个唯一值并将其作为查询参数添加到 ajax URL:
/example/url/post.php?rand=09809807896768
我用来在 JS 中生成当前的 unix 时间戳并使用它——这样可以确保我不会得到重复的时间戳。
这样每个请求都是唯一的,不会被缓存。这是一个简单但相当常见的 AJAX 技巧 - 通常修复 IE 和测试问题。
如果您要使用 jQuery,它会通过将 AJAX settings 上的属性缓存设置为 false 来为您完成此操作。
【讨论】:
request header field pragma is not allowed by "access-control-allow-headers"。知道如何避免这种情况吗?看:stackoverflow.com/questions/23048184/…