javascript - jQuery.get 没有收到服务器上最新版本的文件

标签 javascript apache jquery

<分区>

Possible Duplicate:
Prevent caching of AJAX call

我正在使用 jQuery 读取网络服务器上的一个小文本文件:

jQuery.get('scores.txt', function(data) {
    parseScores(data);
});

这几乎可以正常工作——但它不能可靠地加载最新版本的文件。即使 story.txt 已更改,刷新页面也会为 data 返回完全相同的值。

服务器是标准的 Mac OS Apache,没有启用缓存,它和客户端是同一台机器——所以理论上我和它之间没有其他缓存。

如果我将 http://127.0.0.1/scores.txt 加载到浏览器中,它总是会打开最新版本。

查看 Apache 日志,对于页面更新失败的时间,jQuery GET 请求从未到达服务器。

我怀疑我可能需要将这个问题移至 serverfault.com,但是有人能看到我的 JavaScript 有问题导致它以这种方式运行吗?

有没有办法使用 JavaScript/jQuery 强制浏览器请求文件的新副本?

提前致谢。

最佳答案

尝试添加 cache: false到您的 AJAX 选项:

jQuery.ajax({
    url: 'scores.txt',
    dataType: 'text',
    type: 'GET',
    cache: false,
    success: parseScores
});

jQuery 会自动为每个请求添加一个防止缓存的时间戳。

关于javascript - jQuery.get 没有收到服务器上最新版本的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13876551/

相关文章:

django - mod_python 错误 : ImportError: Could not import settings

javascript - 查看 json 并单击该 json 中的 links.json 并将其替换为当前的 json View

javascript - 加载指示器自动完成

javascript - 根据用户的选择动态构建输入元素及其变体

Javascript 排序 - 奇怪的行为,知道吗?

javascript - 检查三个 boolean 值中的两个是否为真?

java - 在 apache poi 中导出到 Excel 时获取问号而不是多个 while 空格

apache - Docker Centos 7 镜像运行 Apache2 "DocumentRoot ... is not readable"

java - Selenium - 在继续之前等待 Javascript 函数执行

javascript - jQuery UI Sortable——如何取消已拖动/排序的项目的点击事件?