jQuery.get返回旧数据
jQuery.get returns old data
我的网站有一个控制页面,允许管理员更改网站的各种内容。其中一个部分允许管理员更改页面。我在所选页面上使用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>
和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请求。
因此,请尝试在获取请求()之前使用$.ajaxSetup()设置cache: false
$.ajaxSetup({
cache: false
});
使用ajaxSetup()
进行设置会将每个ajax请求的缓存属性设置为false。
如果您只想为一个请求设置属性,那么您可以使用$.ajax()而不是带有自定义选项
您的浏览器正在缓存结果。
从get
切换到ajax
,并将cache: false
作为选项之一传递。
缓存(默认值:true,对于dataType"script"answers"jsonp"为false)
类型:布尔值
如果设置为false,则会强制请求的页面不被由浏览器缓存。注意:将缓存设置为false只起作用正确处理HEAD和GET请求。它通过添加"_={timestamp}"添加到GET参数。不需要参数其他类型的请求,IE8中对URL进行POST时除外已经由GET请求的。
这是因为html缓存保存在本地。
在javascript文件的开头位置:
$.ajaxSetup({
cache: false
});
浏览器缓存有问题,请尝试执行一些操作,如将?_= new Date().getTime()
添加到url
- JSON数组数据返回Undefined
- AngularJS中的页面之间共享数据返回空
- post()向服务器动态生成的数据返回空响应
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- d3从mysql数据库导入数据返回“0”;未定义”;
- JSON可以't访问数据返回未定义
- 让 ajax 数据返回到调用函数 - 需要澄清之前的答案
- ajax 调用 PHP 数据返回 VM92:1 未捕获语法错误:意外的标记 {.
- Jquery ajax 请求无法将数据返回给其他函数
- 在 jquery 中将数据返回给 ajax 调用
- Meteor.methods:从内部回调将数据返回给客户端
- 将PHP数据返回到我当前的网页,供Javascript访问
- ajax 调用如何将数据返回给变量
- 将数据返回到索引.js节点表达式
- j查询帖子数据返回比较不起作用
- 节点 API 未将数据返回给客户端 ajax 请求
- jQuery 函数在 AJAX 数据返回上不起作用
- AJAX 将数据返回给 jquery
- 中继:获取递归数据返回空值
- 根据chrome.storage中的数据返回chrome.webRequest.onBeforeRequest的值