Javascript get返回旧数据

Javascript get返回旧数据,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我的网站有一个控制页面,允许管理员更改网站的各种内容。 一个部分允许管理员更改页面。 我在选中的页面上使用jQuery.get来查找内容,然后将其显示在文本区域中。 这一切工作正常,管理员可以修改内容并保存它。 内容将被保存,页面在刷新后会发生更改。 但是,当我再次使用jQuery.get查找页面的新内容时,它会返回 原始页面内容,旧数据。 无论我刷新页面多少次,文本区域总是显示不应该存在的数据 不再 以下是独立的编辑页面代码: <script type="text/javascript"

我的网站有一个控制页面,允许管理员更改网站的各种内容。 一个部分允许管理员更改页面。 我在选中的页面上使用jQuery.get来查找内容,然后将其显示在文本区域中。 这一切工作正常,管理员可以修改内容并保存它。 内容将被保存,页面在刷新后会发生更改。 但是,当我再次使用jQuery.get查找页面的新内容时,它会返回 原始页面内容,旧数据。 无论我刷新页面多少次,文本区域总是显示不应该存在的数据 不再 以下是独立的编辑页面代码:

<script type="text/javascript">

$(document).ready(function() {

    $('#editpage').click(function() {

        var page = $('#page').val();

        $.get('pages/' + page + '.txt',{},function(data) {

            $('#display').val(data);

        });

    });

    $('#savepage').click(function() {

        var pageToChange = $('#page').val();
        var contents = $('#display').val();

        $.post('changepage.php',{page:pageToChange,text:contents},function(data) {

            $('#saveyay').html('<div class="success">Saved Changes</div>');

        });

    });

});

</script>

$(文档).ready(函数(){
$(“#编辑页”)。单击(函数(){
var page=$('#page').val();
$.get('pages/'+page+'.txt',{},函数(数据){
$('#display').val(数据);
});
});
$(“#保存页”)。单击(函数(){
var pageToChange=$('#page').val();
var contents=$('#display').val();
$.post('changepage.php',{page:pageToChange,text:contents},函数(数据){
$('#saveyay').html('Saved Changes');
});
});
});
和changepage.php:

<?php

    if (array_key_exists('text',$_POST) AND array_key_exists('page',$_POST)) {

        file_put_contents('pages/'.$_POST['page'].'.txt', $_POST['text']);

    }

?>


我错过了什么?

一个可能的原因是缓存get请求

因此,请尝试在get请求()之前使用设置
cache:false

使用
ajaxSetup()
设置它将为每个ajax请求将cache属性设置为false


如果只想为一个请求设置属性,则可以使用浏览器缓存结果,而不是使用自定义选项

get
切换到
ajax
并将
cache:false
作为选项之一传递

缓存(数据类型“script”和“jsonp”的默认值为true、false)
类型: 布尔值
如果设置为false,则将强制不删除请求的页面 由浏览器缓存。注意:将缓存设置为false只会起作用 正确使用HEAD并获取请求。它通过附加 “{timestamp}”以获取参数。此参数不需要用于 其他类型的请求,IE8中发布URL时除外 这已经被一个GET请求了


这是因为html缓存正在本地保存

在javascript文件的开始位置:

$.ajaxSetup({
    cache: false
});

浏览器缓存出现问题,请尝试执行一些操作,如将
?\uxAE=new Date().getTime()
添加到url

或在特定请求上修复缓存头。但您不能告诉所有用户这样做。代码中的解决方案是必需的。在客户端禁用缓存不是解决方案。自从我们发表评论以来,答案已经更新了-可能是从其他人那里复制的。很抱歉,我误读了这个问题,以为他只是在测试时得到的。@Poploane我写了这个问题,甚至没有看到其他人的答案和你的评论,我不知道其他人已经发布了这个。我是通过谷歌搜索得到的。你不应该那么快下结论。
$.ajaxSetup({
    cache: false
});