我的网站有一个控制页面,允许管理员更改网站的各种内容。 一个部分允许管理员更改页面。 我在选择的页面上使用jQuery.get来查找内容,然后在textarea中显示它。 这一切都很好,管理员可以修改内容并保存。 保存内容,刷新后页面会更改。 但是,当我再次使用jQuery.get查找页面的新内容时,它会返回 原始页面内容,旧数据。 无论我刷新页面多少次,textarea总是显示不应存在的数据 了。 这是隔离的编辑页面代码:
<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>
和changepage.php:
<?php
if (array_key_exists('text',$_POST) AND array_key_exists('page',$_POST)) {
file_put_contents('pages/'.$_POST['page'].'.txt', $_POST['text']);
}
?>
我错过了什么?
答案 0 :(得分:1)
可能的原因是缓存get请求。
因此,请尝试在get request()
之前使用$.ajaxSetup()设置cache: false
$.ajaxSetup({
cache: false
});
使用ajaxSetup()
进行设置会将每个ajax请求的cache属性设置为false。
答案 1 :(得分:0)
您的浏览器缓存结果。
从get
切换到ajax
并传递cache: false
作为您的选项之一。
缓存(默认值:true,false表示dataType&#39;脚本&#39;和&#39; jsonp&#39;)
类型: Boolean如果设置为false,则会强制请求的页面不是 由浏览器缓存。注意:将缓存设置为false仅适用 正确使用HEAD和GET请求。它通过附加工作 &#34; _ = {}时间戳&#34;到GET参数。不需要该参数 其他类型的请求,除了在IE8中对URL进行POST时 这已经被GET要求了。
答案 2 :(得分:0)
这是因为您在本地保存了html缓存。
在您的javascript文件开头位置:
$.ajaxSetup({
cache: false
});
答案 3 :(得分:0)
浏览器缓存有问题,请尝试执行将?_= new Date().getTime()
添加到url之类的操作