Javascript ajax文本响应未更改为新文本
我开始学习Ajax,并遵循在线教程。我必须使用下面的脚本读取文本文件,并用文本文件的内容更改html标题。它首先工作hml页面从“hello world”更改为555 555,这是文本文件的内容。然后我用“世界已经改变”更新了文本文件,但当我点击网页按钮时,仍然会显示旧的55555。 我在另一台电脑上进行了检查,显示了“世界已改变”的内容。所以我想这是一个问题,与资源管理器记住旧的文本。 如何清除此缓存 编辑 我发现清除浏览器历史记录将显示新的文本文件内容。另外,更改大约15分钟的时间长度,新文本文件内容将显示,而不会清除浏览器历史记录Javascript ajax文本响应未更改为新文本,javascript,ajax,Javascript,Ajax,我开始学习Ajax,并遵循在线教程。我必须使用下面的脚本读取文本文件,并用文本文件的内容更改html标题。它首先工作hml页面从“hello world”更改为555 555,这是文本文件的内容。然后我用“世界已经改变”更新了文本文件,但当我点击网页按钮时,仍然会显示旧的55555。 我在另一台电脑上进行了检查,显示了“世界已改变”的内容。所以我想这是一个问题,与资源管理器记住旧的文本。 如何清除此缓存 编辑 我发现清除浏览器历史记录将显示新的文本文件内容。另外,更改大约15分钟的时间长度,新文
<div id="demo">
<h2>Hello world</h2>
</div>
<button type="button" onclick="loadDoc()">Change Title</button>
<script type="text/javascript">
function loadDoc(){
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function(){
if (xhttp.readyState == 4 && xhttp.status == 200){
document.getElementById("demo").innerHTML = xhttp.responseText;
}
};
xhttp.open("GET", "hh.txt", true);
xhttp.send();
}
</script>
</body>
你好,世界
改名
函数loadDoc(){
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数(){
如果(xhttp.readyState==4&&xhttp.status==200){
document.getElementById(“demo”).innerHTML=xhttp.responseText;
}
};
打开(“GET”,“hh.txt”,true);
xhttp.send();
}
禁用缓存的一个快速修复方法是
xhttp.open("GET", "hh.txt?t=" + Math.random(), true);
您也可以尝试此方法以获得更独特的url
var timestamp = new Date().getTime();
xhttp.open("GET", "hh.txt?t=" + timestamp, true);
一个可能的原因是ajax请求无法工作。如果您正在使用Google Chrome,请打开控制台并检查网络选项卡。您应该会看到请求失败,并给您一个不同于200状态码的代码。它第一次工作时,在另一个控制台上工作。在检查“网络”选项卡时,我获得状态200,因此应考虑到您没有使用相对路径:
hh.txt
。如果你想让它在任何页面上工作,你必须让它相对,就像这样:/hh.txt
我已经做了你的建议,但我仍然得到了旧的文本文件内容。在其他计算机上,我得到了新的内容。ajax正在读取文件,但web浏览器正在记住旧内容。如果我清除了浏览器数据,那么新的内容就会显示在一个办公室里,一个网络上有三台电脑,一个移动网络上有一台笔记本电脑。所以我可以有一个历史没有被清除,其他的我可以清除历史来证明这就是chrome记忆旧内容的地方