【问题标题】:prevent xmlHttpReq 's browser caching防止 xmlHttpReq 的浏览器缓存
【发布时间】:2011-04-28 10:48:29
【问题描述】:

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

【问题讨论】:

    标签: javascript ajax xmlhttprequest


    【解决方案1】:

    对于您发出的每个 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/…
    • @LuisA.Florit 我不仅没有看到对您的评论的回应(这可能是其自身的问题),而且您发布的链接甚至不起作用。非常遗憾,因为我遇到了同样的问题。 :(
    猜你喜欢
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 2013-02-17
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多