[英]jQuery.get returns old data
我的網站有一個控制頁面,允許管理員更改網站的各種內容。 一個部分允許管理員更改頁面。 我在選定的頁面上使用 jQuery.get 來查找內容,然后將其顯示在文本區域中。 這一切正常,管理員可以修改內容並保存。 內容被保存,頁面一旦刷新就會改變。 但是,當我再次使用 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>
並更改page.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 request() 之前使用$.ajaxSetup()設置cache: false
$.ajaxSetup({
cache: false
});
使用ajaxSetup()
設置它會將每個 ajax 請求的緩存屬性設置為 false。
您的瀏覽器緩存結果。
從get
切換到ajax
並傳遞cache: false
作為您的選項之一。
緩存(默認值:true,對於 dataType 'script' 和 'jsonp' 為 false)
類型:布爾型
如果設置為 false,它將強制請求的頁面不被瀏覽器緩存。 注意:將緩存設置為 false 僅適用於 HEAD 和 GET 請求。 它的工作原理是將“_={timestamp}”附加到 GET 參數。 其他類型的請求不需要該參數,除非在 IE8 中對已由 GET 請求的 URL 進行 POST。
這是因為您的 html 緩存正在本地保存。
在您的 javascript 文件位置的開頭:
$.ajaxSetup({
cache: false
});
瀏覽器緩存有問題嘗試做一些事情,比如將?_= new Date().getTime()
到 url
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.